【问题标题】:.htaccess and page names.htaccess 和页面名称
【发布时间】:2010-01-04 01:32:30
【问题描述】:

我有一个相当大的网站,我需要修改 URL 中显示的文件的名称。我正在使用启用了 mod_rewrite 的 Apache 2。我目前在我的 .htaccess 文件中有以下配置:

RewriteEngine on
RewriteBase /
RewriteRule ^CakeList\.php$ TastyThingsList.php [T=application/x-httpd-php]

现在,当我访问 http://mysitename/CakeList.php 时,我确实看到了 TastyThingsList.php 页面的数据。如果用户键入 http://mysitename/TastyThingsList.php,他们确实会看到页面,但地址栏不是“TastyThingsList.php”,我希望它读取“CakeList.php”。这可以使用 mod_rewrite 来完成吗?请注意,CakeList.php 页面实际上并不存在,我或多或少地将它用作 TastyThingsList.php 页面的别名。我一直在阅读 mod_rewrite 的许多在线教程,但我似乎找不到答案。

简而言之,无论用户输入:http://mysitename/CakeList.php还是http://mysitename/TastyThingsList.php,我希望浏览器中的地址显示http://mysitename/CakeList.php.

谢谢 网牛

【问题讨论】:

    标签: php apache .htaccess mod-rewrite


    【解决方案1】:

    使用RewriteRule的重定向标志:

    RewriteRule ^TastyThingsList\.php$ CakeList.php [R=permanent,L]

    这通过向客户端浏览器返回一个 URL 来工作,实际上它必须重新请求它,这就是它在地址栏中向用户显示的方式。

    理想情况下,如果永远不会使用此 URL,则永远不会给出它,甚至可以将其配置为如果直接输入则无法访问。

    除非您有一个非常奇怪的 httpd 配置,否则您不需要问题中 RewriteRule 中的 T 标志。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-29
      • 2015-08-05
      • 1970-01-01
      相关资源
      最近更新 更多