如何在这种情况下使用ReWriteBase?

时间:2015-08-14 19:30:59

标签: php .htaccess debugging mod-rewrite

这是我的.htaccess文件。

<IfModule mod_rewrite.c>

RewriteEngine On
RewriteBase /~new/

</IfModule>

我网站的目录结构是:

enter image description here

现在我想做的是能够访问如下路径:
domain.com/~new/pages/page1.php

但是当我尝试访问URL以上时,我会被重定向到404 page。 我错过了什么?是否还需要ReWriteRule

1 个答案:

答案 0 :(得分:1)

RewriteBase并不能按照您的想法行事。事实上,它本身没有任何作用。只有在RewriteBase中有相对路径替换时才需要RewriteRule。如果你不这样做(即你正在使用根相对或绝对路径),那么你实际上并不需要它。

  

还需要ReWriteRule吗?

是的,RewriteRule是URL重写的实际内容。你需要做一些URL重写。

因此,基本上,您希望在内部重写您的网址:
example.com/~new/pages/page1.php(您的&#34;虚拟&#34;网址)
example.com/pages/page1.php真实的网址)

RewriteRule ^~new/(.*) /$1 [L]

(.*)捕获/~new/之后的所有内容,而$1是对此捕获的子模式的反向引用。