1

我正在使用 mod_rewrite 将“url.com/foo”之类的网站重写为“url.com/index.php?site=foo”。

编码:

RewriteEngine On
RewriteBase /
RewriteRule ^([0-9a-zA-Z]+)$ index.php?site=$1

如果我单击带有 href="/foo" 的链接,它会给我

http://url.com/foo/?site=foo

该代码在同一 V-Server 上的其他站点上工作,我安装了样板,但我现在不使用它的 .htaccess 来修复 mod_rewrite,所以它不能是样板问题,或者?

我还尝试了以下代码:

RewriteEngine On
RewriteBase /
RewriteRule ^(.*)$ index.php?site=$1

该代码至少重写为 index.php?site=foo 但它仍然像上面的示例一样创建 url,中间有不必要的文件夹。

编辑:以确保每个人都理解整体想法:

这些文件基于http://url.com (index.php, .htaccess) ,所以我将 RewriteBase 设置为“/”。它应该采用类似的链接

http://url.com/foo

并将它们重写为

http://url.com/index.php?site=foo

不包含任何文件夹。

4

2 回答 2

1

我解决了,该死的,我太愚蠢了;)

我有一个名为的文件夹url.com/foo/,我重定向的链接是url.com/foourl.com/index.php?site=foo所以它总是试图进入那个文件夹。因为我重命名了文件夹,所以它工作得很好。

于 2013-01-22T17:31:13.860 回答
0

我在 RewriteRule 上收到了类似的错误消息

pcfg_openfile: unable to check htaccess file, ensure it is readable

我也有类似于重定向 URL 部分的子文件夹名称,但重命名它并没有解决问题(正如 Chris 所建议的那样)。

经过多次尝试,通过将子文件夹权限更新为 755(使用 cPanel 文件夹权限对话框)解决了问题:

User:  Read, Write, Execute
Group: Read,        Execute
World: Read,        Execute

PS:我不确定这种情况是否真的需要重命名子文件夹,因为在重命名之前和之后,错误消息是相同的。

于 2017-10-31T07:58:50.443 回答