【问题标题】:how to keep htaccess file under site root如何将htaccess文件保存在站点根目录下
【发布时间】:2017-11-25 05:01:30
【问题描述】:

本地主机,xampp,赢 7
站点路径:
C:\xampp\htdocs\news\s02

所以所有相关文件,包括.htaccess 都在s02 文件夹下。

这样的链接可以正常工作:
http://localhost/news/s02/view.php?art=160915142500&title=blue-sky

我想要以下计算的 url
http://localhost/articles/160915142500/blue-sky

.htaccess

RewriteEngine on
RewriteBase /
RewriteRule ^articles/([0-9]+)/([a-zA-Z-_]*)$ view.php?art=$1&title=$2 [NC,L]

结果 - 错误 404

httpd.conf
LoadModule rewrite_module modules/mod_rewrite.so - 未注释
AllowOverride All - 所有实例

当我将.htaccess 文件移动到:
C:\xampp\htdocs
并将 RewriteRule 更改为:
RewriteRule ^articles/([0-9]+)/([a-zA-Z-_]*)$ news/s02/view.php?art=$1&title=$2 [NC,L]

没有error 404,即view.php被加载,但没有图片、css和js文件(它们都在previous,即s02文件夹下。

如何将 .htaccess 文件保存在站点根目录 (s02) 下并加载 view.php 及其所有元素?

重新启动 xampp 和 apache 和 mysql 模块没有帮助。

【问题讨论】:

  • 为 css、js 文件夹添加重写规则,还包括 s02 文件夹
  • @yes_i_am_vj,所有依赖文件的 RewriteRule,包括图像...我认为.htaccess默认情况下是不可能的。
  • 我的意思是你在重写规则时必须考虑......试试RewriteRule .* /news/s02/%1.%2 [L,NC]
  • 您正在从根目录调用 URL,例如 localhost/articles...因此您需要在该目录中拥有 .htaccess。
  • @user3571366,我的整个站点中没有任何articles 文件夹。我只想将articles/ 写在 url 中。

标签: php apache .htaccess mod-rewrite


【解决方案1】:

我认为这不可能从子目录中完成。您基本上是在尝试重写从子目录中发送到根目录的请求。为了重写当前 url,apache 应该看到当前目录中的 .htaccess 文件。

但是您仍然可以重定向到指定位置,但您必须在 htdocs 目录中创建 .htaccess 文件。

这是我的第一个答案:) 不确定这是否适合作为答案。

【讨论】:

  • 在这种情况下,.htaccess 将适用于我所有的本地站点!
  • 当然是的,这就是你需要使用虚拟主机的原因;)
  • 你能解释一下吗?我不想在所有网站上都使用这个htaccess,但每个网站都应该有自己的htaccess(如果有的话)。
  • 设置虚拟主机。谷歌,你会发现更多。
  • 或从每个项目文件夹开始重写,但你能得到的最漂亮的 URL 是 /news/s02/articles...
猜你喜欢
  • 2012-10-15
  • 2011-12-12
  • 1970-01-01
  • 2012-04-14
  • 1970-01-01
  • 1970-01-01
  • 2014-10-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多