使用 PHP 如何制定重写规则?

2022-01-04 00:00:00 php apache mod-rewrite url-rewriting

第一次使用 mod rewrite.请帮我制定这些规则

Using mod rewrite for the first time. Please help me with these rules

我希望为页面重写我的网址,如下所示:

I'd like my urls rewritten for pages as follows:

list.php?city=dallas >>> list/city/dallas

profile.php?id=12 >>> profile/zaknuman(从数据库检索的用户名)

profile.php?id=12 >>> profile/zaknuman (username retrieved from db)

story.php?id=33 >>> story/there-are-no-ants-in-texas(从数据库检索的故事标题)

story.php?id=33 >>> story/there-are-no-ants-in-texas (story title retrieved from db)

推荐答案

RewriteRule list/city/([a-zA-Z])$ list.php?city=$1

应该匹配最后一个斜杠后 a-z 和 A-Z 范围内的每个字符.

which should match every character in the range a-z and A-Z after the final slash.

另外两个我相信你需要在数据库中嵌入 slug('zaknuman' 和 'there-are-no-ants-in-texas'),然后你就可以从数据库并以这种方式获取您的 ID,可见:

The other two I believe you'll need to embed the slug ('zaknuman' and 'there-are-no-ants-in-texas') in the database and then you'll be able to retrieve that slug from the database and get your ID that way, vis:

RewriteRule profile/(.*)$ profile.php?slug=$1

RewriteRule story/(.*)$ story.php?slug=$1

这最后 2 个匹配最后一个斜杠后的每个字符.

These last 2 match every character after the final slash.

不要忘记确保您的 .htaccess 文件或 Apache 配置中有RewriteEngine On"!

Don't forget to make sure you have "RewriteEngine On" in your .htaccess file or Apache configuration!

相关文章