【问题标题】:php .htaccess rewrite with new cpanel accountphp .htaccess 用新的 cpanel 帐户重写
【发布时间】:2011-01-02 13:19:39
【问题描述】:

我的 .htaccess 文件中有以下内容,我经常这样做是为了获得更清晰的 URL。我知道这有优点和缺点,我想我找到了一个缺点。

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
Options All -Indexes

我为此网站注册了一个新的 cPanel 帐户,因此 URL 如下所示:

http://www.example.com/~newuser/

...example.com 是我的经销商帐户,newuser 是我的客户。

网站加载正常,但是当我点击链接 http://www.example.com/~newuser/about 时,出现以下错误:

请求的网址 /home/newuser/public_html/about.php 在此服务器上找不到。

问题是,这正是我希望它显示的文件,也就是文档根目录。有什么想法吗?

提前致谢。

【问题讨论】:

  • 文件夹中的这个.htaccess 是否映射到example.comexample.com/~newuser 另外-我知道这似乎很明显,但您请求的是example.com/~newuser/about 还是example.com/~newuser/about.php-如果是后者,它将添加一个额外的“.php”
  • 我正在请求 example.com/~newuser/about,它应该显示 example.com/~newuser/about.php 而实际上在 URL 中不显示 .php。 .htaccess 位于文件夹/~newuser/ 中(当我们重新指向域时,它将是根目录)。
  • 好的 - 只是检查 ;) 您是否尝试禁用 htaccess 以确认这是问题所在 - 我刚刚尝试使用您的 htaccess,它似乎工作正常
  • %{REQUEST_FILENAME}\.php 中的\ 是干什么用的?那部分不是正则表达式。
  • @jeeorse:你还知道哪些其他缺点?

标签: .htaccess mod-rewrite cpanel


【解决方案1】:

在您的 RewriteCond 行之前,添加一个 RewriteBase 行,如下所示:

RewriteEngine on
RewriteBase /~newuser/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
Options All -Indexes

【讨论】:

  • 是的!马克,你救了我扯掉头发。 stackoverflow.com,我爱你。
猜你喜欢
  • 2017-01-27
  • 1970-01-01
  • 1970-01-01
  • 2012-03-24
  • 1970-01-01
  • 1970-01-01
  • 2012-06-02
  • 1970-01-01
  • 2011-02-21
相关资源
最近更新 更多