我的网站上有各种链接,这些链接都是通过PHP MySQL查询生成的。 因此,在一个页面上,它可能会产生大量结果,如果单击一个,可能需要我:
... / sector.php?县=肯特
但是我有一个重写规则
RewriteEngine On
RewriteRule ^county/([^/]*)\.html$ /sector.php?county=$1 [L]
但是当我点击链接时,我仍然看到上面的内容而不是:
http://sitename.co.uk/county/Kent
我做错了吗? 这是.htaccess文件的顶部,以防它的格式错误,其他一切都有效。 :
RewriteEngine On
RewriteRule ^county/([^/]*)\.html$ /sector.php?county=$1 [L]
AuthName "Restricted Area"
AuthType Basic
AuthUserFile /customers/6/c/d/sitename.co.uk/httpd.www/...
AuthGroupFile /dev/null
<Files site.php>
require valid-user
......显然这不是全部,只是他的结构。
即使我手动指向新链接...县/肯特我得到了404
答案 0 :(得分:2)
Mod_rewrite不会修改您输出的链接。它仅修改从一个URL到另一个URL的传入请求。如何解释该URL取决于您的应用程序。您可以通过href ='/ county / xxx'的形式获得链接输出。此时只有您可以回答如何执行此操作,因为它取决于您的应用程序的编码方式。
在尝试访问/ county / Keny时获得404的原因可能是因为您在.htaccess文件中的匹配规则中包含.html。您的第一个示例规则没有它,但样本.htaccess文件中的规则没有。
答案 1 :(得分:0)
您需要在HTML中重写链接网址。