У меня есть некоторые URL-адреса, подобные этим:
http://plutov.by/post/cubique_zf_jquery
http://plutov.by/post/mysql_useful_queries
Как я могу с помощью Apache mod_rewrite открыть следующие страницы?
http://plutov.by/post/main?title=cubique_zf_jquery
http://plutov.by/post/main?title=mysql_useful_queries
Кроме того, будет ли это новое правило перезаписи работать с «переписыванием одной точки входа»?
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . index.php [L]
Благодарю.
Чтобы заставить новое правило перезаписи работать с «переписыванием одной точки входа», rewriteRules
следующие действия для rewriteRules
:
Флаг QSA
является обязательным при добавлении новой строки запроса.
RewriteEngine On RewriteRule ^(post)/([\w\d\-]+)/?$ $1/main?title=$2 [QSA] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-l RewriteRule . index.php [L]
QSA
Apache Docs . !-l
проверяет, что запрошенный URI не является символическим чернилом. Вы можете использовать что-то вроде этого в вашем .htaccess:
RewriteRule ^post/(.*)$ post/main?title=$1 [L]
Вы должны соблюдать это правило ПЕРЕД одним переписыванием правил ввода. Если правило будет срабатывать, то переписывание поиска правил будет завершено (поскольку указан параметр [L])
Некоторая модификация путей может потребоваться, если вы хотите использовать эти правила в контексте VirtualHost