Переписать базовую переменную $ _GET в дружественный URL, используя mod_rewrite - PullRequest
2 голосов
/ 08 февраля 2012

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

Я использую базовый get для файла index.php, который выглядит как

http://www.example.com/index.php?page=about

Я хочу переписать это в

http://www.example.com/about

IЯ знаю, это довольно просто переписать, но это совершенно другой язык, который я пытался и не смог понять.Спасибо

Ответы [ 2 ]

2 голосов
/ 08 февраля 2012

Попробуйте это:

RewriteEngine on
RewriteRule ^([^/\.]+)/?$ /index.php?page=$1 [L]
1 голос
/ 08 февраля 2012

Или даже:

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME}  -f
RewriteRule ^(?!index.php\b).*   index.php?page=$0 [L,QSA]

Примечание:

  • Вы должны всегда устанавливать RewriteBase в .htaccess файле.
  • У меня естьобобщил это так, что index.php выбирает любую строку, которая не соответствует реальному файлу
  • (?!index.php\b) является регулярным выражением, которое говорит "но не соответствует * 1017"* "
  • Вам понадобится флаг [QSA], если ваши запросы могут содержать параметры запроса.Это объединяет их.
...