Php mod_重写.htaccess中的链接和格式
我的网站上有各种链接,它们都是通过PHP MySQL查询生成的。 因此,在一个页面上,它可能会给出大量结果,如果单击其中一个,我可能会看到: …/sector.php?county=Kent 但是我有一个重写规则Php mod_重写.htaccess中的链接和格式,php,.htaccess,mod-rewrite,Php,.htaccess,Mod Rewrite,我的网站上有各种链接,它们都是通过PHP MySQL查询生成的。 因此,在一个页面上,它可能会给出大量结果,如果单击其中一个,我可能会看到: …/sector.php?county=Kent 但是我有一个重写规则 RewriteEngine On RewriteRule ^county/([^/]*)\.html$ /sector.php?county=$1 [L] 但当我点击链接时,我仍然看到上面的内容,而不是: http://sitename.co.uk/county/Kent 我做错什
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
重新编写引擎打开
重写规则^county/([^/]*)\.html$/sector.php?county=$1[L]
AuthName“限制区”
AuthType Basic
AuthUserFile/customers/6/c/d/sitename.co.uk/httpd.www/。。。
AuthGroupFile/dev/null
需要有效用户
。。。显然,这不是全部,只是他的结构
即使我手动指向新链接…county/Kent,我也会得到一个404,您需要在html中重写链接url。Mod_rewrite不会修改您输出的链接。它只修改从一个url到另一个url的传入请求。如何解释该url取决于您的应用程序。将由您以href='/country/xxx'的形式获取链接输出。此时,只有您可以回答如何执行此操作,因为这取决于应用程序的编码方式
尝试转到/country/Keny时获得404的原因可能是您在.htaccess文件的匹配规则中包含了.html。您的第一个示例规则没有,但是示例.htaccess文件中的规则有。但是如何,因为它们都是通过php/mysql查询生成的:/n那么您应该编辑php。否则就不可能了。选择url连接的那一行,它应该很容易匹配。另一种方法是将原始url重定向到重写的url,但这是一种非常肮脏和不必要的方式。不确定是谁否决了这个答案,但OP说“但当我点击链接时,我仍然看到上面的内容,而不是”这意味着链接本身没有被修改。但是如果我编辑PHP来创建不同的链接,我该如何提取所有的信息?>这肯定会删除POST和GET的使用吗?你是在建议我重做所有链接,然后连接url以查找数据?你仍然有所有的get参数和新的url,这就是你的重写规则所做的。county/xyz在您的服务器上被转换为county=xyz。您知道主机是否为apache启用了mod_rewrite吗?是的。起初我不确定,但我确实检查过。所以如果我点击以下链接:它会保持不变吗?或者它会变成:我是否错过了在这里重写mod的要点?:'(它将保持不变。mod_rewrite不会更改浏览器中的任何内容。下面是发生的情况……浏览器将/county/Keny发送到您的服务器。mod_rewrite截取它,并调用php/sector.php?county=Kent。输出直接发送到浏览器。浏览器甚至不知道发生了什么。它认为它只是转到了/count。)/一直以来都是Kent。另外,我看到你用重写规则更新了问题,并在两个规则中都添加了.html。这对url/county/Kent不起作用。规则指定url必须以.html结尾才能匹配并进行重写。/county/Kent不起作用。好吧,太棒了,开始工作了,非常有帮助D-Rock,谢谢澄清,但最后一个问题。没有图像加载到那里,知道为什么吗?