繁体   English   中英

PHP / Apache:使用.htaccess重写规则

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM