【问题标题】:.htaccess not working on ip/~username.htaccess 在 ip/~username 上不起作用
【发布时间】:2014-05-18 11:54:12
【问题描述】:

这是我的情况。我正在尝试使用 .htaccess 重写 url,但无论我如何尝试,浏览器总是显示 500 错误或 404 错误。

这是我的代码。

RewriteEngine On
RewriteBase /~torinots/beta/
RewriteCond %{REQUEST_FILENAME} !^(/beta/home)
RewriteRule ^home$ index.php [L]

示例路径:http://xx.xx.xx.xx/~username/beta/

请指教。

更新

我找到了这份工作!

重写引擎开启
RewriteBase /~torinots
RewriteRule ^beta/home/?$ beta/index.php [L,NC]

【问题讨论】:

  • 我假设您要显示的 url 是 ~username/beta?您要重写的 url 是什么(或者换句话说:您要执行的文件是什么)?
  • 您好,我想将“index.php”改写为“home”,完整路径为110.40.40.40/~username/beta/home

标签: apache .htaccess mod-rewrite url-rewriting


【解决方案1】:

我假设您在 /~username/beta 中有 .htaccess 文件,因为您使用的路径与上面示例中的路径相关。假设 .htaccess 文件中没有其他更高级别的规则干扰,则具有类似以下规则的简单规则将正确地在内部重写 url。

RewriteRule ^home$ index.php [L]

如果您也想将请求重定向到 index.php,那么您需要防止发生无限循环。您可以使用 END 标志(2.3.9 及更高版本)或 THE_REQUEST 技巧。

#internal rewrite, and then stop everything
RewriteRule ^home$ index.php [END]

#Rewritebase is possibly needed for the redirect
RewriteBase /~torinots/beta/

#external redirect
RewriteRule ^index\.php$ home [R=301,L]

或:

#internal rewrite, and then stop everything
RewriteRule ^home$ index.php [L]

#Rewritebase is possibly needed for the redirect
RewriteBase /~torinots/beta/

#external redirect
RewriteCond %{THE_REQUEST} index\.php
RewriteRule ^index\.php$ home [R=301,L]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-31
    • 2013-03-22
    • 1970-01-01
    相关资源
    最近更新 更多