Я пытаюсь улучшить свои URL-адреса с помощью файла .htaccess. Я пробовал несколько разных правил, но сайт продолжает вылетать. Я включил код, который добавляет общую папку в корневой каталог, поскольку, хотя он и работает, я подозреваю, что он может влиять на последний код, который не работает.
# Turn Rewrite Engine On
RewriteEngine on
# Make /public/ part of root
RewriteCond %{HTTP_HOST} ^mysite.dev$ [NC,OR]
RewriteCond %{HTTP_HOST} ^mysite.dev$
RewriteCond %{REQUEST_URI} !public/
RewriteRule (.*) /public/$1 [L]
# Rewrite for terms-and-conditions.php
RewriteRule ^legal$ terms-and-conditions.php [NC,L]
# NC makes the rule non case sensitive
# L makes this the last rule that this specific condition will match
# $ in the regular expression makes the matching stop so that "legalblah" will not work
# Rewrite for package.php?feature=something
RewriteRule ^package/([0-9a-zA-Z]+)$ package.php?feature=$1 [NC,L]
Что ж, RewriteRule для публикации части корня документа работает, так что я так думаю.
RewriteRule ^legal$ terms-and-conditions.php [NC,L]
не запускается? редактировать можно возиться со своим правилом.
правильно, если я перейду к mysite.dev/terms-and-conditions.php, я вижу страницу, но если я перейду к mysite.dev/legal, я получаю 404 not found
попробуйте скрипт выше, я проверил ваше правило, оно сначала запускается для публики, а не для закона. обратите внимание, что порядок правила имеет значение.
Отличный ресурс и решение. Если вы напишете это как ответ, я помечу как принятый.
Даже если вы измените порядок правил, /terms-and-conditions.php
все равно будет переписан как /public/terms-and-conditions.php
извините за мой глупый вопрос, просто убедитесь, что
mod_rewrite
установлен и работает? можете проверить журнал apache (при условии, что вы его используете). по его звуку - сайт продолжает вылетать - как будто какой-то конфиг сломан. возможно, в вашемhtaccess
что-то отсутствует илиmod_rewrite
не работает.