URL, дружественный к SEO, не работает

#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] , и теперь он работает! Большое спасибо.