2015-11-04 2 views
0

Это мое текущее содержимое файла .htaccess:Wordpress RewriteRule не работает

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
Options +FollowSymlinks -MultiViews 
RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 
# END WordPress 

Я хочу изменить:

http://example.com/search/?location=&radius_key=sydney/&keyword=&geolocation= 

к:

http://example.com/massage/sydney/ 

Я изменил сценарий как ниже, но это не изменяет мой URL. Не могли бы вы направить меня. Любые реакции на устранение этой проблемы заслуживают высокой оценки. Благодаря

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
Options +FollowSymlinks -MultiViews 
RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^/massage/(.*)$ /search/? location=&radius_key=$1&keyword=&geolocation= 
RewriteRule . /index.php [L] 
</IfModule> 
# END WordPress 

ответ

0

Если вы хотите URL в адресной строке браузера, чтобы изменить, вы должны активировать «R» флаг в modrewrite, который активирует перенаправление.

Таким образом, вы будете писать что-то вроде

RewriteRule /search/\?.*location=([a-z0-9_.-]+)&.* geolocation=$1 [R=301,L] 

Я предлагаю также разделить конфигурацию на две части, чтобы сохранить первоначальную конфигурацию Wordpress неизмененной.

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule /search/\?.*location=([a-z0-9_.-]+)&.* geolocation=$1 [R=301,L] 
</IfModule> 

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
Options +FollowSymlinks -MultiViews 
RewriteEngine On 
RewriteBase/
RewriteRule . /index.php [L] 
</IfModule> 
# END WordPress 
+0

Я использовал ваш код и ударил (http://example.com/search/?location=&radius_key=sydney&keyword=&geolocation=). Страница показывает «Внутренняя ошибка сервера». –

+0

Я редактировал код, теперь он должен работать лучше. Имейте в виду, что я только что изменил код, который вы предоставили, и его нужно настроить. – SimoneLazzaris

+0

Разве это не должно быть так? RewriteRule ^/massage /(.*)$ /search/\?.*location=([a-z0-9_.-]+)&.* geolocation = $ 1 [R = 301, L] –

0

Необходимо немного изменить свои правила. Это должно позволить вам использовать новый URL-адрес, а также ваши правила WordPress.

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
Options +FollowSymlinks -MultiViews 
RewriteEngine On 
RewriteBase/

RewriteCond %{REQUEST_FILENAME} -f [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule^- [L] 

RewriteCond %{THE_REQUEST} ^GET\ /search/\?location=&radius_key=([^\ &]+)&keyword=&geolocation= 
RewriteRule^/massage/%1? [R=301,L] 

RewriteRule ^massage/([^/]+)/?$ /search/?location=&radius_key=$1&keyword=&geolocation= [L] 

RewriteRule ^index\.php$ - [L] 
RewriteRule . /index.php [L] 
</IfModule> 
# END WordPress 

Дайте мне знать, как это работает на вас.

+0

Thank Panama. Я использовал ваш код и ударил (http://example.com/search/?location=&radius_key=sydney&keyword=&geolocation=). Изменений не было. Повторен тот же URL (http://example.com/search/?location=&radius_key=sydney&keyword=&geolocation=). –

+0

Я сделал так, чтобы вы могли использовать 'http: // example.com/massage/sydney /' в браузере, а не наоборот. Однако я изменил его для работы с обоими. Пожалуйста, проверьте мой обновленный ответ на то, что вы запрашиваете сейчас. –

+0

Спасибо, Панама. Я использовал выше код. Когда поиск направляется на страницу (поиск /? Location = & radius_key = sydney & keyword = & geolocation =). Он не показывает этот URL-адрес, но проблема в том, что теперь это не приводит меня к содержимому страницы, на которой показано (поиск /? Location = & radius_key = sydney & keyword = & geolocation =). Теперь страница переводится на новую страницу: (listing/sydney_acupuncture_and_massage_cbd /). Не страница, которую я ищу, и URL-адрес, который я ищу (массаж/sydney /) :( –

Смежные вопросы