1

我的网站上有各种链接,这些链接都是通过 PHP MySQL 查询生成的。因此,在一个页面上,它可能会提供大量结果,如果单击一个页面,我可能会:

.../sector.php?county=肯特

但是我有一个重写规则

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

4

2 回答 2

2

Mod_rewrite 不会修改您输出的链接。它只修改从一个 url 到另一个的传入请求。该 url 如何解释取决于您的应用程序。以 href='/county/xxx' 的形式获取链接输出取决于您。此时只有您可以回答如何执行此操作,因为这取决于您的应用程序的编码方式。

尝试转到 /county/Keny 时收到 404 的原因可能是因为您在 .htaccess 文件的匹配规则中包含了 .html。您的第一个示例规则没有它,但您的示例 .htaccess 文件中的规则有。

于 2012-07-05T10:30:33.350 回答
0

您需要重写 html 中的链接 url。

于 2012-07-05T10:06:36.280 回答