Имя папки в Omnibox вместо index.html [duplicate]

UIBezierPath имеет свойство, называемое currentPoint.

Для получения дополнительной информации см. документацию .

75
задан Dave 20 April 2011 в 13:16
поделиться

8 ответов

Спасибо за ваши ответы. Я уже решил свою проблему. Предположим, что у меня есть мои страницы в разделе http://www.yoursite.com/html , применяются следующие правила .htaccess.

<IfModule mod_rewrite.c>
   RewriteEngine On
   RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /html/(.*).html\ HTTP/
   RewriteRule .* http://localhost/html/%1 [R=301,L]

   RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /html/(.*)\ HTTP/
   RewriteRule .* %1.html [L]
</IfModule>
12
ответ дан Signare 20 August 2018 в 07:59
поделиться

Я использую этот .htaccess для удаления расширения .html с моего сайта url, пожалуйста, проверьте, что это правильный код:

    RewriteEngine on
RewriteBase /
RewriteCond %{http://www.proofers.co.uk/new} !(\.[^./]+)$
RewriteCond %{REQUEST_fileNAME} !-d
RewriteCond %{REQUEST_fileNAME} !-f
RewriteRule (.*) /$1.html [L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^.]+)\.html\ HTTP
RewriteRule ^([^.]+)\.html$ http://www.proofers.co.uk/new/$1 [R=301,L]
6
ответ дан Anmol 20 August 2018 в 07:59
поделиться
  • 1
    Это, похоже, сработало для меня, в отличие от других решений, представленных здесь, спасибо. Я бы добавил, что вам все равно нужно обновлять ссылки (ссылки) в вашем HTML (так что если вы изначально ссылаетесь на ваш .html-файл как & lt; a href = & quot; page1.html & quot; & gt; & lt; / a & gt; , вы должны обновить его как & lt; a href = & quot; example.com/page1"></a> , а затем он будет работать.) – Lorenzo 1 March 2014 в 22:17
  • 2
    работал на локальном хосте. – Jayo2k 3 June 2015 в 22:43
  • 3
    Основное изменение для меня было бит RewriteBase /. К сожалению, я не понимаю, почему это сработало, но я думаю, что скоро узнаю. – Keno Clayton 21 February 2017 в 02:52
  • 4
    может ли это работать в режиме localhost? – Pianistprogrammer 28 December 2017 в 11:24

Вам нужно будет убедиться, что у вас есть Options -MultiViews.

Ни одно из вышеперечисленных не работало для меня на стандартном хосте cPanel.

Это сработало:

Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.html [NC,L]
13
ответ дан Bradley Flood 20 August 2018 в 07:59
поделиться

Я думаю, что какое-то объяснение ответа Джона было бы конструктивным. Следующее:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

проверяет, что если указанный файл или каталог соответственно не существует, то правило перезаписи продолжается:

RewriteRule ^(.*)\.html$ /$1 [L,R=301]

Но что это значит? Он использует регулярное выражение (регулярные выражения) . Вот немного чего-то, что я сделал ранее ...

I думаю, это правильно.

ПРИМЕЧАНИЕ. При тестировании вашего .htaccess не используют 301 переадресацию. Используйте 302 до завершения тестирования, так как браузер будет кэшировать 301-е. См. https://stackoverflow.com/a/9204355/3217306

Обновление: я был слегка ошибочен, . соответствует всем символам, кроме строк новой строки, поэтому включает пробелы. Кроме того, здесь является полезным чит-листом regex

Источники:

http://community.sitepoint.com/t/what-does -this-mean-rewritecond-request-filename-fd / 2034/2

https://mediatemple.net/community/products/dv/204643270/using-htaccess- переписать-правила

59
ответ дан Community 20 August 2018 в 07:59
поделиться
  • 1
    Великолепная диаграмма, которая поможет объяснить ответ. – Richard Le Poidevin 26 September 2017 в 08:37
  • 2
    Совет по 301 и кеш браузера - это то, что решило мои проблемы. – Mark 8 February 2018 в 18:10
  • 3
    Довольно информативный. – Muema 4 March 2018 в 18:43
RewriteRule /(.+)(\.html)$ /$1 [R=301,L] 

Попробуйте это :) не знаю, работает ли это.

0
ответ дан Jarsäter 20 August 2018 в 07:59
поделиться

С .htaccess под apache вы можете сделать перенаправление следующим образом:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\.html$ /$1 [L,R=301] 

Что касается удаления .html из url, просто ссылку на страницу без .html

<a href="http://www.example.com/page">page</a>
64
ответ дан Jon Skarpeteig 20 August 2018 в 07:59
поделиться
  • 1
    Это ничего не делает для меня. Есть ли причина, по которой это не сработает? – Michael Yaworski 2 February 2014 в 06:02
  • 2
    У вас есть фактический файл для запрашиваемой ссылки? Это вызовет функцию !-f – Martijn 15 March 2018 в 11:21

Чтобы удалить расширение .html из ваших URL-адресов, вы можете использовать следующий код в файле root / htaccess:

RewriteEngine on


RewriteCond %{THE_REQUEST} /([^.]+)\.html [NC]
RewriteRule ^ /%1 [NC,L,R]

RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^ %{REQUEST_URI}.html [NC,L]

ПРИМЕЧАНИЕ. Если вы хотите удалить любое другое расширение, например, чтобы удалить .php, просто замените html всюду php в коде выше.

43
ответ дан starkeen 20 August 2018 в 07:59
поделиться
  • 1
    Ни один из других ответов не работал для меня, но это было сделано, спасибо большое! – Emmet Arries 20 March 2016 в 02:23
  • 2
    меня устраивает :) – Javid 4 August 2016 в 04:56
  • 3
    этот тоже работал для меня. Спасибо @starkeen. Сделайте голосование. – JeremyS 10 October 2016 в 18:57
  • 4
    Это работает с Webfaction – brt 3 June 2017 в 12:09

Это должно сработать для вас:

#example.com/page will display the contents of example.com/page.html
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.+)$ $1.html [L,QSA]

#301 from example.com/page.html to example.com/page
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*\.html\ HTTP/
RewriteRule ^(.*)\.html$ /$1 [R=301,L]
58
ответ дан Łukasz Habrzyk 20 August 2018 в 07:59
поделиться
  • 1
    Я получил 404 в Godaddy с этим кодом, и я исправил его: Options + FollowSymLinks -MultiViews -Indexes на самом верху. – Labanino 13 February 2014 в 15:10
  • 2
    И это сработало. Удивительно. – Sindri Þór 1 May 2016 в 11:26
  • 3
    Это работает для меня ... thnx – Ramesh Kumar 19 May 2016 в 05:50
  • 4
    Я думаю, что это лучший и самый полный ответ, спасибо! – ctekk 26 November 2017 в 12:09
  • 5
    Я попытался сделать это в локальном хосте, но он не работает, есть ли что-то еще, что мне нужно сделать, мне нужно связать файл .htaccess или как его распознать? – Pianistprogrammer 28 December 2017 в 11:25
Другие вопросы по тегам:

Похожие вопросы: