.htaccess 如何修复此重写URL规则?

.htaccess 如何修复此重写URL规则?,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,基本上需要转换 无论是否使用www,example.com/[anycharacter] 进入 无论是否使用www,example.com/cgi-bin/new disk.cgi/dir/smooth/[anycharacter] 另外 我想将所有www.example.com重定向到example.com作为您答案的一部分,我相信您可以以此作为示例。。希望您使用一个测试域: RewriteCond %{HTTP_HOST} ^www\.example\.com [NC] RewriteR

基本上需要转换

无论是否使用www,example.com/[anycharacter]

进入

无论是否使用www,example.com/cgi-bin/new disk.cgi/dir/smooth/[anycharacter]

另外


我想将所有www.example.com重定向到example.com

作为您答案的一部分,我相信您可以以此作为示例。。希望您使用一个测试域:

RewriteCond %{HTTP_HOST}   ^www\.example\.com [NC]
RewriteRule ^/(.*)         http://example.com/$1 [L,R=301]

可能需要添加一个
(.*)
,并将其作为另一部分的可选部分。

这应该适用于您:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !cgi-bin/new-disk.cgi/dir/smooth
RewriteRule ^(.*)$ /cgi-bin/new-disk.cgi/dir/smooth/$1 [L]
对于前两行,它检查URL中是否有
www
。如果是,请将其跳转到非www版本

注意最后一行的感叹号(
)。这是一个not运算符,在本测试中,正在检查当前请求的文件是否不是最终重写文件,在这种情况下:

cgi-bin/new-disk.cgi/dir/smooth
如果这是真的,请将其分流到您在最后一行中指出的实际重写脚本

字符“$1”引用同一行上第一组括号标记的第一个捕获组