【发布时间】:2013-12-07 17:54:15
【问题描述】:
我目前正在创建一个大型网站,但我想使用干净/用户友好的 URL,而不是常规 URL。我一直在寻找如何基本上根据我的需要定制这些 Apache Mod Rewrite 规则,但是我找不到针对我的特定问题的任何解决方案。
您可以在下面阅读我想通过 URL 实现的目标(我不会每次都写域名,想象一下:http://www.example.com 在 URL 部分之前)。
/register/ OR /register ---> /register.php(它应该支持这两种变体。)
我实际上有更多用于注册的文件,我希望它们可以使用“部分”字样进行访问,例如:
/register/part1/ OR /register/part1 ---> /register.php?part=1(它应该支持这两种变体。)
另外,如果我有多个查询变量怎么办? (如“personal=1”)
/register/part1/personal/ 或 /register/part1/personal ---> /register.php?part=1&personal=1
如果我有更多这样的查询,但我之前无法指定所有这些怎么办?可以输入其中任何一个。 (如“事物、姓名、工作等”)
/register/part1/personal/Nicky/ 或 /register/part1/personal/Nicky ---> /register.php?part=1&personal=1&name=Nicky
或任何你能想象到的变化:
/register/part1/personal/thing/employee/ 或 /register/part1/personal/thing/employee ---> /register.php?part=1&personal=1&thing=1&job=employee
编辑: 这是我已经尝试过的,但它只是将页面重定向到 index.php :/
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
所以我给了你很多例子,我想基本上实现什么。除了“register.php”之外,我还有很多其他页面,所以它不应该只针对那个页面。我还想要一个非常重要的东西,如果有人去例如:register.php?part=1 它应该将他们重定向到适当的 Clean URL(当然在 PHP 中)。
我还想问我应该在 PHP 端做什么才能让一切都好起来?我看到 Wordpress 有一个非常棒的解决方案,它非常自动化,而且看起来很棒!
有人可以向我解释如何为此创建一个出色的 .HTACCESS mod_rewrite 解决方案吗?我会非常非常高兴!
请不要将此问题标记为重复,因为我确实没有找到任何针对我的案例的具体内容。
【问题讨论】:
-
而不是使用笨重的 htaccess 文件直接通过您的
index.php文件的所有请求,并让 PHP 通过解析REQUEST_URI为您处理路由和重定向 -
很高兴了解所有广泛的要求。请向我们展示您自己解决此问题的尝试。
-
我已经更新了我的示例,尝试了 HTACCESS。
-
@PeeHaa 专业人士总是这样做吗?我需要一个专业的方法来解决这个问题。
-
如果您的要求是“专业方法”,则该要求是错误的。专业人士只会告诉您您已为此付费,而不会告诉您技术正确性。
标签: php apache .htaccess mod-rewrite clean-urls