.htaccess HTACCESS:重写uri请求[properties/a-zto-myphp文件

.htaccess HTACCESS:重写uri请求[properties/a-zto-myphp文件,.htaccess,redirect,url-rewriting,.htaccess,Redirect,Url Rewriting,我的目标是实现以下目标: 我的查询:properties.php?id=1234-N-StreetName-etc 变成: properties/1234-N-Beverly-Blvd.html properties.php将根据mysql数据库计算$id(在本例中为any address.html)的值。如果数据库中没有值,则文件properties.php将用户重定向到404页面。 其中$id的值可以是字母、破折号“-”或数字的任意组合 我的代码不起作用: Options +FollowS

我的目标是实现以下目标:

我的查询:
properties.php?id=1234-N-StreetName-etc

变成:

properties/1234-N-Beverly-Blvd.html
properties.php
将根据mysql数据库计算
$id
(在本例中为
any address.html
)的值。如果数据库中没有值,则文件properties.php将用户重定向到404页面。 其中$id的值可以是字母、破折号“-”或数字的任意组合

我的代码不起作用:

Options +FollowSymlinks
RewriteEngine on
RewriteRule ^(.*)\.html$ $1.php [nc]
RewriteRule ^properties/([a-zA-Z0-9_-]+)\.html$ properties.php?id=$1
你能帮我得到正确的htaccess重写代码吗


另外,我对.htaccess一无所知。我从一个示例网站上修改了此代码。

您需要使用L标志将该规则标记为最后一次,并为查询字符串追加标记QSA

DOCUMENT\u ROOT
目录下的.htaccess中使用此代码:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteRule ^properties/([^.]+)\.html$ /properties.php?id=$1 [L,NC,QSA]
要在子目录sun中应用此规则,请使用以下代码:
这将处理URI,如
/sub/properties/abc-123.html
,并将其转发到
/sub/properties.php?id=abc-123

,您将需要L标志将该规则标记为最后一个,并为查询字符串追加标记QSA

DOCUMENT\u ROOT
目录下的.htaccess中使用此代码:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteRule ^properties/([^.]+)\.html$ /properties.php?id=$1 [L,NC,QSA]
要在子目录sun中应用此规则,请使用以下代码:
这将处理URI,例如
/sub/properties/abc-123.html
,并将其转发到
/sub/properties.php?id=abc-123

,以备将来参考,并将属性或邮寄地址作为“id”可能会成为问题。唯一id可能很重要…:)uri.uri_address是主键的外键这很酷;我的意思是…如果你的浏览器中有两个具有相同URL的东西怎么办?;@summea所有我的FK都被索引,否则它们不能被FK作为将来的参考,以属性或邮寄地址作为“id”可能会成为一个问题。唯一ID可能很重要…:)uri.uri_address是主键的外键这很酷;我的意思是…如果你的浏览器中有两个具有相同URL的东西怎么办?;@summea所有我的FK都被索引了,否则就不能是FK L和QSA有什么影响?请查看此官方文档了解详细信息:当然可以n使用
[a-zA-Z0-9&-]
而不是
[^.]
来限制它,我得到了一个505错误=,(啊,有一个输入错误:(
NC,QSA
而不是
NC.QSA
(我错误地键入了句点而不是逗号)L和QSA的影响是什么?请查看此官方文件以了解详细信息:确定您可以使用
[a-zA-Z0-9&-]
而不是
[^.]
我得到一个505错误=,(啊,有一个输入错误:(
NC,QSA
而不是
NC.QSA
(我输入了句点而不是逗号)