我对尾随斜线感到困惑,这是我从网上获得的剧本
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !index.php
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://domain.com/$1/ [L,R=301]
Options All -indexes
我的问题:
1. %{REQUEST_FILENAME} !-f
2. RewriteCond %{REQUEST_URI} !index.php
3. RewriteCond %{REQUEST_URI} !(.*)/$
4.如果原始网址如下,我可以写出重写网址:
def.php?p=cpanel&m=add_user
,
我希望上面的链接重写为cpanel/add_user
感谢
答案 0 :(得分:0)
规则需要是:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^cpanel/([^/]+)/?$ def.php?p=cpanel&m=$1 [L,QSA,NC]
RewriteCond %{REQUEST_FILENAME} !-f
表示iif请求不适用于有效文件$1
是/cpanel/
QSA
(查询字符串追加)标记在添加新查询参数时保留现有查询参数。NC
用于忽略大小写L
适用于最后一次规则答案 1 :(得分:0)
1.%{REQUEST_FILENAME}的功能!-f
2. RewriteCond%{REQUEST_URI}的功能!index.php
3. RewriteCond%{REQUEST_URI}的功能!(。*)/ $
您应该阅读重写指南http://httpd.apache.org/docs/2.0/misc/rewriteguide.html
如果原始网址如下,我怎么写Rewrite网址?
def.php?p = cpanel& m = add_user,
我希望上面的链接重写像cpanel / add_user
您可以在.htaccess文件中使用此代码
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^cpanel/(.*)$ def.php?p=cpanel&m=$1 [L,QSA,NC]