Spl*_*ang 4 apache .htaccess mod-rewrite
我对这个mod_rewrite业务很陌生,但我希望有一条规则可以让我完成以下任务:
localhost/module_name/ -> localhost/index.php?module=module_name
localhost/module_name/module_action -> localhost/index.php?module=module_name&action=module_action
localhost/module_name/module_action/parm1 -> localhost/index.php?module=module_name&action=module_action&parm_1=parm1
localhost/module_name/module_action/parm1/parm2 -> localhost/index.php?module=module_name&action=module_action&parm_1=parm1&parm_2=parm2
Run Code Online (Sandbox Code Playgroud)
等等.我设法让module_name和module_action工作,但我无法弄清楚如何只使用模块或多个参数.这就是我目前拥有的:
RewriteEngine on
RewriteRule ([a-zA-Z]+)/([a-zA-Z]+) index.php?module=$1&action=$2
RewriteRule ([a-zA-Z]+)/([a-zA-Z]+)/([a-zA-Z]+)$ index.php?module=$1&action=$2&parm=$3
Run Code Online (Sandbox Code Playgroud)
第一条规则似乎有效,但在第二条规则上却分崩离析.
任何帮助将非常感激.
你可以试试这个:
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^/([^/]+)/?([^/]*)?/?([^/]*)?/?([^/]*)?/? [NC]
RewriteRule .* index.php?key1=%1&key2=%2&key3=%3&key4=%4 [L]
Run Code Online (Sandbox Code Playgroud)
静静地映射
http://localhost/val1/ 取决于
http://localhost/val1/val2/val3/val4
至:
http://localhost/index.php?key1=val1 取决于
http://localhost/index.php?key1=val1&key2=val2&key3=val3&key4=val4
valN替换URL中的传入值不为空.
index.php 被认为是固定字符串.
对于永久重定向,请将[L]替换为[R=301,L],
最大参数数= 4.
| 归档时间: |
|
| 查看次数: |
5645 次 |
| 最近记录: |