#apache #.htaccess
#apache #.htaccess
Вопрос:
У меня есть URL-адрес (Example.com/blog /) и blog
является каталогом в корне моего веб-сайта. blog
содержит index.php файл, который генерирует страницу на основе строки запроса ?url=[some url]
, например, скажем example.com/blog/?url =’hello-world’ — это допустимая строка запроса, в которой может быть сгенерирована информация. Я хочу, чтобы этот URL-адрес был example.com/blog/hello-world
В настоящее время у меня есть глобальный файл .htaccess, который удаляет все расширения. В каталоге моего блога находится другой файл .htaccess. Я пытаюсь изменить URL-адрес на дружественный URL-адрес:
RewriteEngine on
RewriteBase /blog/
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(blog)/(.*)$ blog/index.php?url=$2
К сожалению, это не работает. Как я могу решить эту проблему, чтобы отображался дружественный URL?
Ответ №1:
Попробуйте сделать это так,
RewriteEngine on
RewriteBase /blog/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /blog/?url=$1 [QSA,NC,L]
Комментарии:
1. По какой-то причине я получил внутреннюю ошибку сервера 500 с этим
2. Пожалуйста, попробуйте сейчас! на самом деле есть 1 доллар вместо 2 долларов, потому что у нас есть только одна подходящая группа.
3. Я изменил ваш код
RewriteRule ^(.*)$ /blog/?url=$1 [QSA,NC,L]
, и теперь он работает! Большое спасибо.