尾随斜线网址.htaccess

时间:2014-01-23 15:57:13

标签: php .htaccess mod-rewrite

我对尾随斜线感到困惑,这是我从网上获得的剧本

  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

感谢

2 个答案:

答案 0 :(得分:0)

规则需要是:

 RewriteEngine On
 RewriteBase /

 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteRule ^cpanel/([^/]+)/?$ def.php?p=cpanel&m=$1 [L,QSA,NC]

参考:Apache mod_rewrite Introduction

  • 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]