Я пытаюсь создать mod rewrite, чтобы просто повернуть эти ссылки:
/index.php?page=home /?page=home
в
/home
Может ли кто-нибудь показать мне, как это делается? Пока мы находимся на этом вопросе, есть ли хорошие ресурсы для чтения в режиме перезаписи мод? Моя самая большая борьба до сих пор заключается в том, что я не вижу никакого способа ее отладки; все работает, или нет.
Существует множество способов сделать это. Это правило применяется к любому несуществующему файлу:
RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?page=$1 [L]
Изменить: вам может потребоваться добавить RewriteEngine on
вверху, и это происходит в .htaccess
в вашем корневом веб-документе. Все это, конечно же, зависит от того, разрешено ли использование htaccess (mod_rewrite) вашим веб-хостом и должен ли файл переопределения правил быть назван .htaccess. Оба они довольно распространены, так что это не должно быть проблемой.
Если я понимаю, вы хотите, чтобы ваши конечные пользователи вводили example.com/home
и переписывали их в /index.php?home
?
RewriteEngine On # /home or / get redirected... RewriteRule ^(home)?$ /index.php?page=home [L,QSA]
Для отладки вы можете включить RewriteLog
. Однако, как было предложено в комментариях, он должен использоваться только для отладки. Лучше всего отключить его или установить уровень очень низкий в производстве.
RewriteLog "/path/to/logs/rewrite.log" # Increase the log level (default 0, >4 gets pretty verbose) RewriteLogLevel 3
RewriteRule .*\?page=(\w+)$ /$1/ [NC]
Должен делать трюк, но, может быть, вы можете быть более конкретным, в каких случаях нужно работать?
Heres веб-сайт, который вы можете прочитать на htaccess