【问题标题】:.htaccess doesn't work.htaccess 不起作用
【发布时间】:2012-05-27 07:43:23
【问题描述】:

我有以下 .htaccess 文件:

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

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^mykeyword$ news.php [L,QSA,NC]

但是,当我打开 news.php 时,url 还是一样的,就是 www.mydomain.com/news.php 而不是 www.mydomain.com/mykeyword

我做了以下测试:

RewriteEngine on 
RewriteRule ^test\.html$ test.php [L]

我在我的服务器上上传了两个文件,test.html 和 test.php,在我输入 www.mydomain.com/test.html 后,我的 php 页面就显示出来了,这意味着我的设置没有问题。我到底做错了什么???

任何帮助将不胜感激。

问候,卓然

【问题讨论】:

    标签: .htaccess


    【解决方案1】:

    将您的 .htaccess 更改为此:

    RewriteEngine On
    RewriteBase /
    
    RewriteCond %{HTTP_HOST} ^(mydomain\.com)$ [NC]
    RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L] 
    
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+news\.php [NC]
    RewriteRule ^ mykeyword [R=301,L]
    
    RewriteRule ^mykeyword/?$ news.php [L,NC]
    

    【讨论】:

    • 你这个摇滚伙伴...谢谢。我正要开始用这个问题把头撞到墙上。留在这里,我可能会发布一个或多个问题...谢谢。
    • 不客气。请在评论中将您问题的链接发送给我,以便我在收件箱中收到提醒。
    • 如果我的文件在某个目录下,我应该如何修改 htaccess 文件?假设我的域是这样的:www.mydomian.com/somefolder 你能帮忙吗?
    • 您的主机会为您提供一些具有文件管理器或外壳访问权限的控制面板,以便您管理/编辑文件。
    • 我工作的网站目前在我的网站下。所以我必须以某种方式修改 .htaccess 以便客户可以看到它按他的要求工作。我的问题:站点位于 www.somesite.com/tempfolder 下。您发布的代码仅在站点位于其域下时才有效。虽然该站点位于 tempfolder 下,但没有任何效果。
    【解决方案2】:

    重写规则将用户提供的URL转换为服务器看到的URL。尝试浏览 www.mydomain.com/mykeyword - 您应该会看到 news.php 页面。

    【讨论】:

    • 是的,确实如此。但是我的链接到底应该是怎样的呢?我应该像这样链接到我的页面:mykeyword ???
    猜你喜欢
    • 2014-05-11
    • 2012-12-10
    • 1970-01-01
    • 1970-01-01
    • 2013-03-20
    • 2017-05-22
    • 2013-09-29
    • 2013-04-14
    相关资源
    最近更新 更多