我遇到这种情况:
在FOLDER中我有一个文件从其他文件夹中获取内容。
我需要获得所有流量,例如" http://www.site.asd/folder/data1/data2/data3/data4.ext"接到这个电话" http://www.site.asd/folder/file.php?d1=data1&d2=data2&d3=data3&d4=data4.ext"不更改网址
这就是我所做的......并且没有工作......:'(
RewriteEngine On
RewriteRule ^/folder/([^/]+)/([^/]+)/([^/]+)/(.*)$ /folder/file.php?d1=$1&d2=$2&d3=$3&d4=$4 [L,QSA]
任何使这项工作的建议/解决方案?
感谢所有人!
答案 0 :(得分:0)
它可能有效
RewriteEngine On
RewriteRule ^/folder/([^/]+)/([^/]+)/([^/]+)/(.*)$ /folder/file.php?d1=$1&d2=$2&d3=$3&d4=$4 [QSA,L]
答案 1 :(得分:0)
RewriteEngine On
RewriteBase /folder/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)$/folder/file.php?d1=$1&d2=$2&d3=$3&d4=$4 [QSA,L]
这应该可行,只需将rewriteBase指向您想要的文件夹
答案 2 :(得分:0)
您需要从匹配的模式中删除前导斜杠。由于.htaccess
是每个目录指令,Apache从RewriteRule
URI模式中剥离当前目录路径(从而导致斜杠)。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^folder/([^/]+)/([^/]+)/([^/]+)/(.*)$ /folder/file.php?d1=$1&d2=$2&d3=$3&d4=$4 [L,QSA]
确保此规则位于DocumentRoot/.htaccess
。