【问题标题】:Redirect url without changing the url在不更改 url 的情况下重定向 url
【发布时间】:2015-10-19 14:36:29
【问题描述】:

我知道有很多可用的答案,但没有一个对我有用。我被这个非常熟悉的问题困住了。我建立了一个网站,我必须在其中为我的所有加盟商制作定制的网址。但是所有这些自定义的 url 都应该带回主页。

例如。如果加盟商输入以下网址:www.example.com/franchisee/john,它应该将加盟商重定向到www.example.com,但浏览器网址应保持www.example.com/franchisee/john

我已通过修改 .htaccess 文件尝试过此操作,但它显示找不到页面(404)错误。任何帮助都将是可观的。我是.htaccess 的新手。

这里是 .htaccess 代码:

RewriteCond %{REQUEST_URI} ^.*/franchisee/[a-zA-Z0-9_\.\-]+$
RewriteRule ^(.*)$ / [P] 

编辑: 这是完整的 .htaccess 文件。此文件位于 docroot 文件夹下:

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule ^ - [E=protossl]
    RewriteCond %{HTTPS} on
    RewriteRule ^ - [E=protossl:s]
    Options +FollowSymLinks -MultiViews 
    RewriteCond %{REQUEST_URI} ^/franchisee/[a-zA-Z0-9_\.\-]+$
    RewriteRule ^franchisee/[\w.-]+/?$ / [L] 
</IfModule>

【问题讨论】:

    标签: .htaccess mod-rewrite url-rewriting


    【解决方案1】:

    您不需要在这里使用proxyP 标志。使用此规则不带R 标志以静默重写为/

    RewriteEngine On
    
    RewriteRule ^franchisee/[\w.-]+/?$ / [L]
    

    【讨论】:

    • 还是不行。它使浏览器 url 保持原样到 www.example.com/franchisee/john 但不会重定向到 www.example.com 并继续给出 404 错误
    • 不,它不会重定向,因为重定向意味着更改 URL。您的 .htaccess 在哪里?同时显示您的完整 .htaccess 问题
    • 您不需要在 .htaccess 中添加 RewriteCond %{REQUEST_URI} 行,也不需要告诉您的 .htaccess 在哪里?是否在/franchisee/ 目录中?
    • .htaccess 文件位于 docroot 文件夹中。没有这样的物理路径www.example.com/franchisee/&lt;franchisee-name&gt;。要求是分发此网址,每当任何加盟商点击此网址时,我希望他们看到主页,但网址应保持原样至 www.example.com/franchisee/&lt;franchisee-name&gt;
    • 在这种情况下,您有一些配置问题,因为上述规则在我的 Apache 上运行良好。
    猜你喜欢
    • 2012-05-22
    • 2013-08-11
    • 2017-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-12
    • 1970-01-01
    • 2013-11-16
    相关资源
    最近更新 更多