【发布时间】:2015-01-16 00:00:53
【问题描述】:
我设置了一个服务器来托管一个网站。它使用“漂亮的链接”。尝试在 htaccess 文件中创建规则时遇到问题。
在我继续之前,我想参考一下我用来尽量减少混淆的位置
wwww/wwww 是我所有文件夹内容所在的站点,它位于 wamp 创建的 www 文件夹中page.php包含我想以某种方式实现的规则,它位于我网站的根目录中
目前我的网站会生成如下链接,但这些链接不起作用:
www.MYDOMAIN.co.uk/our-services
上面的链接不起作用,但如果我手动编辑链接并执行此操作,它会起作用:
www.MYDOMAIN.co.uk/page.php?q=our-services
我需要找到一种方法在 htaccess 文件中实现这一点并让它添加page.php?q=
下面是我的 htaccess 文件
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . wwww/index.php [L]
</IfModule>
我遇到的问题是在我的主页上生成导航,如果我点击我们服务的链接,它会重定向到页面www.MYDOMAIN.co.uk/our-services
我需要它做的是点击我的规则文件,该文件位于我的根目录中,名为 page.php,该文件又将使用 our-services 或任何可能的查询来为其提供正确的链接
我知道我的 htaccess 文件当前正在链接回索引文件,这就是它无法正常工作的原因,但我尝试了其他方法,如下所示。
尝试 1 - 这只是 404 或将我带到空白页
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . wwww/page.php?q=$1 [L]
</IfModule>
尝试 2
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .? /page.php?$1 [L]
</IfModule>
我的其他尝试都相似,我得到相同的 404 或空白屏幕。这是我第一次接触重写链接,这说明我对此缺乏了解。
【问题讨论】:
-
你的
DocumentRoot是什么?page.php在哪里,wwww在哪里? -
@anubhava 在我的根目录 www 文件夹中我有另一个名为 wwww 的文件夹,其中包含我所有的网站内容 css javascript 等,page.php 位于 wwww 的根目录中,与我的索引所在的文件夹相同和 htaccess :)
-
那么如何访问
/wwww/里面的css文件呢?例如是www.MYDOMAIN.co.uk/wwww/css/style.css? -
我只在本地托管,所以现在它会进入
www/wwww/css/style.css
标签: apache .htaccess url mod-rewrite