Mod_Rewrite Вопрос - PullRequest
       7

Mod_Rewrite Вопрос

0 голосов
/ 19 августа 2009

Я пытаюсь переслать example.com/signup и example.com/signup/ (с косой чертой) в example.com/signup.php

Я написал следующее в .htaccess, и он работает для example.com/signup/, но не работает без косой черты ... Как я могу решить проблему?

RewriteEngine On
RewriteRule ^question/(.*)-(.*) /question.php?qid=$1
RewriteRule ^signup/ /signup.php

Ответы [ 3 ]

4 голосов
/ 19 августа 2009
RewriteEngine On
RewriteRule ^signup/?$ /signup.php

Знак вопроса делает косую черту необязательной, а знак доллара означает конец строки, поэтому ничего не может последовать. Вы можете удалить $, если хотите.

Вы также можете разрешить произвольные строки запроса в конце URL с чем-то вроде:

RewriteRule ^signup/?(\?.*)?$ /signup.php$1

Это позволит вам передавать любые параметры запроса в ваш скрипт PHP. Например, URL http://www.example.com/signup?destination=/front-page будет перенаправлен на http://www.example.com/signup.php?destination=/front-page.

3 голосов
/ 19 августа 2009

Сделайте косую черту необязательной с помощью квантификатора ?:

RewriteRule ^signup/?$ /signup.php

Но я рекомендую вам просто использовать одну запись и перенаправить другую.

1 голос
/ 19 августа 2009

Поставить знак вопроса после косой черты

RewriteRule ^signup/? /signup.php

? = необязательный одиночный символ в регулярных выражениях

...