如何用OR运算符编写url重写?

时间:2015-06-08 17:16:24

标签: php .htaccess

这是网站的文件结构:

site_one_folder
index.php

在site_one_folder中有一个文件:

controller.php

我想写重写规则到

  1. 如果人们搜索www.mysiteurl / index.php或www.mysiteurl或www.mysiteurl /,它将运行index.php
  2. 如果人们搜索而不是index.php: 例如:我将搜索
  3. www.mysiteurl/something.php

    然后浏览器会显示上面的网址,但内容必须是

    `www.mysiteurl/site_one_folder/controller.php?para=something`
    

    注意:para =搜索的文件名不包括(.php)

2 个答案:

答案 0 :(得分:2)

尝试将此添加到我们根文件夹中的htaccess文件(index.php所在的位置):

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)\.php$ /site_one_folder/controller.php?para=$1 [L,QSA]

确保已启用mod_rewrite。

答案 1 :(得分:1)

直接访问index.php的第一个条件。第二,以避免无限重定向

RewriteEngine on

RewriteCond %{REQUEST_URI} !^/index.php$
RewriteCond %{REQUEST_URI} !^/site_one_folder/controller.php$
RewriteRule ^(.+)\.php$ site_one_folder/controller.php?para=$1 [L]