【问题标题】:URL rewrite rule that allows long URL to appear shorter允许长 URL 显得更短的 URL 重写规则
【发布时间】:2014-05-01 16:12:39
【问题描述】:

我希望用户访问:

domain.com/example

并显示来自以下页面的内容:

domain.com/directory1/directory2/directory3/example.html

在浏览器中,我希望它说 domain.com/example 而不重定向。我们有一系列需要在域中包含短 URL 的登录页面。

我考虑过以编程方式做一些事情,例如 PHP 包含,但我觉得 .htaccess 重写规则是最佳实践。

【问题讨论】:

    标签: apache .htaccess url-rewriting


    【解决方案1】:

    所以你想要:

    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^example$ /directory1/directory2/directory3/example.html [L]
    

    如果您希望它适用于每个文件(将“示例”替换为任何文件),请将RewriteRule 行替换为:

    RewriteRule ^([^/]+)$ /directory1/directory2/directory3/$1.html [L]
    

    【讨论】:

    • 我相信这会解决问题,但我刚刚意识到会有另一个问题。我正在使用一个 Web 应用程序,它在每个 URL 之前插入 index.php,规则如下: RewriteRule .* index.php [L] 尝试通过 Web 应用程序处理“示例”URL。有条件绕过吗?
    • @deeperData 您可以将上述规则添加到 before 路由到 index.php 文件的规则。如果这不起作用,那么您可能需要编辑您的 index.php 文件或您的 Web 应用程序来执行这种路由
    • 确实,在工作之前添加它。我在询问之前尝试过,但我留下了与此修复无关的条件,并且它禁用了 index.php 重写规则。无论如何,你是一个绅士和一个圣人。谢谢先生。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-13
    • 1970-01-01
    • 2018-11-21
    • 1970-01-01
    相关资源
    最近更新 更多