为什么我的.htaccess文件无法在cPanel中运行?

时间:2017-04-14 20:29:21

标签: php apache .htaccess mod-rewrite cpanel

我的htaccess是

Options -Multiviews

RewriteEngine On
RewriteBase /

# Force search engines to use www.mommy-info.com
RewriteCond %{HTTP_HOST} !^www\.mommy-info\.com$
RewriteRule ^(.*) http://www.mommy-info.com/$1 [R=301,L]

# Specify search friendly URLs
RewriteRule ^about/$ /about.php [L]

我保存了它,但它没有在我的网站上重写它。它仍然显示“丑陋”的网址。我不知道该怎么做,因为我对htaccess文件很新,不知道为什么它不起作用。

如果我输入“漂亮”网址(www.mommy-info.com/about/),它没有css,但它是漂亮的网址。如果我浏览网站上的菜单,它只会显示丑陋的网址。

1 个答案:

答案 0 :(得分:2)

当我点击您的网站时,它看起来好像 mod_rewrite 正在运行,事情就好了。

我是否打到了 http://www.mommy-info.com/about.php

http://www.mommy-info.com/about/
我收到了相同的内容,

这可以通过

看到
$ curl http://www.mommy-info.com/about/ | md5
1105b8f6dbf1a2c52bddd8e5f9046653

$ curl http://www.mommy-info.com/about.php | md5
1105b8f6dbf1a2c52bddd8e5f9046653

这里的问题实际上似乎与您的main.css资源有关,该资源被引用为:

<link href="main.css" type="text/css" rel="stylesheet"/>

问题在于,当我请求/about/时,css文件被相对引用,但是失败了;您可以通过在浏览器中检查并在/about/刷新页面来查看此内容,样式表将抛出404。

$ curl --head http://www.mommy-info.com/about/main.css
HTTP/1.1 404 Not Found

要解决样式表问题,请更改您的代码行以从文档根目录访问它,方法是在路径前加/,这将访问它statically vs relatively

<link href="/main.css" type="text/css" rel="stylesheet"/>
           /\ access statically from root

除了样式表之外,可能想要从RewriteRules中删除所有尾部斜杠,因为它会强制用户附加/,否则会看到404 :

$ curl --head http://www.mommy-info.com/about
HTTP/1.1 404 Not Found

$ curl --head http://www.mommy-info.com/about/
HTTP/1.1 200 OK