Raz*_*tax 5 php regex apache .htaccess mod-rewrite
我试图使用htaccess重写规则来映射多个GET变量,但不是所有变量都是必需的.我已经对变量进行了排序,以便始终需要x,如果设置了y,则必须设置z,等等.所以我需要映射看起来像这样:
example.com/section/topic/sub
Run Code Online (Sandbox Code Playgroud)
映射到
example.com/?x=section&z=topic&y=sub
Run Code Online (Sandbox Code Playgroud)
但是,以下代码会导致内部错误,但如果我只有一个重写规则,则它可以正常工作.
Options +FollowSymLinks
Options -indexes
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} ([^/]+)/? [NC]
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)$ ?x=$1&z=$2&y=$3&r=$4 [NC,L]
RewriteRule ^([^/]+)/([^/]+)/([^/]+)$ ?x=$1&z=$2&y=$3 [NC,L]
RewriteRule ^([^/]+)/([^/]+)$ ?x=$1&z=$2 [NC,L]
RewriteRule ^([^/]+)$ ?x=$1 [NC,L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)
我还需要确保url 可以有尾随/但不需要它.
你可能会说,我是htaccess的新手.
谢谢
anu*_*ava 12
RewriteCond %{REQUEST_URI} ([^/]+)/?在做什么./?$您可以在以下方面使用以下规则DOCUMENT_ROOT/.htaccess:
Options +FollowSymLinks -indexes
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
## If the request is for a valid directory
RewriteCond %{REQUEST_FILENAME} -d [OR]
## If the request is for a valid file
RewriteCond %{REQUEST_FILENAME} -f [OR]
## If the request is for a valid link
RewriteCond %{REQUEST_FILENAME} -l
## don't do anything
RewriteRule ^ - [L]
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)/?$ ?x=$1&z=$2&y=$3&r=$4 [L,QSA]
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ ?x=$1&z=$2&y=$3 [L,QSA]
RewriteRule ^([^/]+)/([^/]+)/?$ ?x=$1&z=$2 [L,QSA]
RewriteRule ^([^/]+)/?$ ?x=$1 [L,QSA]
</IfModule>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9968 次 |
| 最近记录: |