.htaccess加载友好网址的index.php文件

时间:2016-11-05 06:55:50

标签: php .htaccess

我有这个网址:

www.mywebsite.com/news/best-ever-phones

部分best-ever-phones是可变的,可以是任何东西 index.php文件正在使用网址best-ever-phones

检查数据库

问题是在./news/.htaccess文件中我有这段代码:

RewriteEngine On
RewriteBase /news/

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([\w-]+)/?$ index.php?article=$1 [L,QSA]

应该加载index.php文件,但是当我访问404 Not found url时服务器返回错误www.mywebsite.com/news/best-ever-phones

有什么问题?

4 个答案:

答案 0 :(得分:1)

试试这个

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule   ^(.+)$   index.php?article=$1   [L]

答案 1 :(得分:0)

我认为问题可能出在Rewrite base和你的相对路径上。但这就是我如何做到的。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="cities">

</div>

这应该可以解决您的问题,将您的索引重命名为news.php

答案 2 :(得分:0)

或许可以试一试:

RewriteEngine On
RewriteBase /news/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([\w-\/]+)\/?$ index.php?article=$1 [L,QSA]

这假设您希望/字符显示在$article变量中,因此如果您想要/news/index.php,则可以在逻辑上将友好URI的不同部分分开。否则,单个段友好的URI(如/news-item-1或诸如此类的东西可能会以尾部斜杠结束。

你真的不想要斜杠,因为它可能会导致使用不同的网址(/ count)加载同一页面时出现重复的内容处罚,因此您可能无法在捕获之外匹配\/? group或php中的group或301重定向到删除了尾部斜杠的URL。这样你也有干净的查询参数,例如/news/something-big?orly=yes代替/news/something-big/?orly=yes

我正在使用this site来测试重写。否则未经测试,因为我们没有方便的代码,所以无法判断它在您的环境中是否有效。

答案 3 :(得分:-1)

当我们点击任何网址时,会使用此代码隐藏其扩展名。 但是如果你想转到index.php页面然后写     

echo '<a href="index.php">Index Page </a>';

  ?>
相关问题