.htaccess переписать вопрос - что мне не хватает? - PullRequest
0 голосов
/ 08 декабря 2011

Все, что я хочу сделать, - это очень простое перенаправление, чтобы в браузере отображалось mypage.html, а index.php?s=1 - это страница, которая обслуживается.

Что мне здесь не хватает?

redirect 301 /mypage.html index.php?s=1
- это перенаправляет всю страницу как ожидалось

RewriteRule ^/index.php?s=1$ mypage.html [R=301,L]
- это возвращает ошибку 404, когда я получаю доступ к mypage.html

Ответы [ 2 ]

1 голос
/ 08 декабря 2011

Вы хотите перенаправить FROM mypage.html TO index.php? S = 1?

В этом случае RewriteRule установлен в неправильном порядке.Он перенаправляет вас на mypage.html, если вы пытаетесь получить доступ к index.php? S = 1.

Это должно помочь (без гарантий. Я не проверял правило, просто переключил имена файлов в вашем правиле):

RewriteRule ^mypage.html$ /index.php?s=1 [R=301,L]
0 голосов
/ 08 декабря 2011

Вы писали:

mypage.html отображается в браузере, но index.php?s=1 - это страница, которая обслуживается.

Если это , а не aПеренаправление, которое вы хотите сделать (т. е. URL в клиентском браузере не изменяется ), тогда вам просто нужно сделать rwriterule, подобный этому:

RewriteRule ^mypage\.html$ /index.php?s=1 [QSA,L]

Ничего более.

А теперь, если вы хотите, чтобы пользователь не мог печатать index.php?s=1, добавьте это правило:

RewriteRule ^/index\.php$ mypage.html [R=301,L]

Итак, всего всего:

RewriteRule ^mypage\.html$ /index.php?s=1 [QSA,L]
RewriteRule ^/index\.php$ mypage.html [R=301,L]

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...