[英]PHP/Apache: Rewrite rules with .htaccess
我对mod_rewrite有点困境。
如何编写将决定以下内容的规则:
如果我浏览/ en / page / page我想将其重写为:
的index.php?语言= EN&页= /页
但如果我只浏览/页面,我想将其重写为:
的index.php?页= /页
这可能吗?
编辑:
/ page只是一个随机的动态页面名称,它也可以是任何东西 。
我需要一个规则来检查/ se ==一个字符串,并且不超过2个字符> / page - > index.php?lang = se&page = / page如果浏览页面/页面它会注意到/ page ==超过2个字符并重写为index.php?page = / page
编辑2:找到我的问题的anser:
RewriteEngine On RewriteBase / ## Check if its not a filename or dirname RewriteCond %{REQUEST_FILENAME} !-l RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d ## Rewrite rules RewriteRule ^(.{2})/(.*)$ index.php?lang=$1&page=$2 [L] RewriteRule ^(.*)$ index.php?page=$1 [L,QSA]
我让它自己工作! 如果其他人需要做同样的事情,这是规则:
RewriteEngine On RewriteBase / ## Check if its not a filename or dirname RewriteCond %{REQUEST_FILENAME} !-l RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d ## Rewrite rules RewriteRule ^(.{2})/(.*)$ index.php?lang=$1&page=$2 [L] RewriteRule ^(.*)$ index.php?page=$1 [L,QSA]
RewriteRule ^page$ index.php?language=en&page=/page/page [L]
RewriteRule ^page/ index.php?language=en&page=/page [L]
试试这个:
RewriteRule ^(.*)/(.*)(/.*)$ index.php?language=$1&$2=$3 [L]
RewriteRule ^page$ index.php?page=/page/page [L]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.