我有这样的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
:
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文档 。 !-l
检查请求的URI不是一个象征性的墨迹。 你可以在你的.htaccess中使用这样的东西:
RewriteRule ^post/(.*)$ post/main?title=$1 [L]
在一个入口点重写规则之前,你应该保持这个规则。 如果规则将触发,则重写规则查找将完成(因为指定了[L]选项)
如果您想在VirtualHost上下文中使用这些规则,则可能需要修改一些路径