htaccess mod_rewrite для URL-адресов SEO неправильно переписываются

Я пытаюсь создать красивые URL-адреса. Я добился этого для случая, когда я хочу, чтобы вся строка указывала на один скрипт PHP. Я не делаю.

Итак, это работает: example.com/login/1/2 => /index.php?go=login&do=1&msg=2

Использование:

RewriteEngine on
RewriteBase /
RewriteRule ^([0-9a-zA-Z_-]+)/?$ /index.php?go=$1 [L,QSA]
RewriteRule ^([0-9a-zA-Z_-]+)/([0-9a-zA-Z_-]+)/?$ /index.php?go=$1&do=$2 [L,QSA]
RewriteRule ^([0-9a-zA-Z_-]+)/([0-9a-zA-Z_-]+)/([0-9a-zA-Z_-]+)/?$ /index.php?go=$1&do=$2&q1=$3 [L,QSA]

Теперь давайте скажем, я хочу example.com/webapp/1/2/3 => webapp.php? 1 = 1 & 2 = 2 & 3 = 3

Добавив это под приведенным выше:

RewriteRule ^webapp/?$ /webapp.php [L,QSA]
RewriteRule ^webapp/([0-9a-zA-Z_-]+)/?$ /webapp.php?go=$1 [L,QSA]
RewriteRule ^webapp/([0-9a-zA-Z_-]+)/([0-9a-zA-Z_-]+)/?$ /webapp.php?go=$1&do=$2 [L,QSA]
RewriteRule ^webapp/([0-9a-zA-Z_-]+)/([0-9a-zA-Z_-]+)/([0-9a-zA-Z_-]+)/?$ /webapp.php?go=$1&do=$2&q1=$3 [L,QSA]

Навигация to example.com/webapp перенаправляет на index.php каждый раз, удаляя любую строку запроса.

Если я закомментирую первый блок кода и перейду на example.com/webapp , я получу webapp.php , как должен.

Я не получаю ошибок ни в одном журнале. Журнал доступа во время звонка сообщает 302 в webapp

Что я делаю не так?

-1
задан 8 September 2016 в 14:43
2 ответа

добавив это ниже

Вам необходимо добавить, что перед выше!

Ваши правила должны быть расположены в порядке специфичности. Сначала более конкретные правила, затем - самые общие. Ваш первый блок правил содержит самые общие / всеобъемлющие правила, так что это то, что улавливает запрос и где обработка останавливается.

0
ответ дан 5 December 2019 в 20:27

Я не уверен, правильно ли вы поняли понятие красивых URL-адресов: https://en.wikipedia.org/wiki/Semantic_URL То, что вы планируете делать, определенно не поможет вашему SEO. И вы не должны перенаправлять временно (302 редирект), а постоянно [R = 301].

0
ответ дан 5 December 2019 в 20:27

Теги

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