嗨朋友我在PHP中为我的网站编写了重写规则,它在Windows和Linux操作系统上运行良好但是我将此项目移动到MAC OSX当时是错误而不是正确重写
.htaccess文件代码在下面给出
RewriteEngine On
RewriteBase /ProjectName
RewriteRule uploads/(.*) uploads/$1 [L]
RewriteRule css/(.*) css/$1 [L]
RewriteRule libs/(.*) libs/$1 [L]
RewriteRule js/(.*) js/$1 [L]
RewriteRule images/(.*) images/$1 [L]
RewriteRule Files/(.*) Files/$1 [L]
RewriteRule API/(.*) API/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !example.php
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule (.*)$ index.php?module=$1 [L]
RewriteRule (.*)/(.*)$ index.php?module=$1&action=$2 [L]
RewriteRule (.*)/(.*)/(.*)$ index.php?module=$1&action=$2&id=$3 [L]
需要您身边的任何帮助
Thanx Guyzzz ......
答案 0 :(得分:0)
不知道如何在任何操作系统上使用它,因为最后一组规则永远不会被应用。
首先,您的3个条件仅适用于紧随其后的规则,因此仅RewriteRule (.*)$ index.php?module=$1 [L]
。这意味着最后两个规则没有条件,恰好是 OK 因为它们永远不会被使用。 RewriteRule (.*)$ index.php?module=$1 [L]
规则的模式匹配所有内容,因此最后两个规则是多余的。你可能会追求的是:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !example.php
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule (.*)/(.*)/(.*)$ index.php?module=$1&action=$2&id=$3 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !example.php
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule (.*)/(.*)$ index.php?module=$1&action=$2 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !example.php
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule (.*)$ index.php?module=$1 [L]