php - 目录重定向规则

标签 php css apache .htaccess mod-rewrite

我在使用 Htaccess 和 RewriteRule 时遇到一些问题。 基本上: 我有一个名为/_dev/WEBDEV 的目录,并希望人们从服务器上的/WEBDEV 访问它。 ( http://domain.com/WEBDEV 将指向 http://domain.com/_dev/WEBDEV )

这是我使用过的htaccess代码

RewriteRule ^WEBDEV(|/)$ /_dev/WEBDEV/
RewriteRule ^example(|/)$ /_dev/example/

所以当我去http://domain.com/WEBDEV时,页面显示,但没有 CSS 样式或图像。 我的意思是:

<img src="img/shape3.png">

服务器上的 url 为/_dev/WEBDEV/img/shape3.png 但使用 Htaccess 它给出了

http://domain.com/img/shape3.png

作为图像(并抛出 404)。

另外,我的服务器上有一个文件/_dev/WEBDEV/app1.php ,并且使用 htaccess 时会出现 404 未找到。

最佳答案

首先,正确定义你的 RewriteBase

RewriteEngine On
RewriteBase /

如果请求的 URL 与文件或目录匹配,则不应触发您的重写规则。

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

您需要将规则的 REGEXP 匹配添加到重写的路径中 但首先,重写 WEBDEV 目录的路径,使其后面始终有一个斜杠

RewriteRule ^WEBDEV$ WEBDEV/ [L,QSA]
RewriteRule ^WEBDEV(.*)$ /_dev/WEBDEV$1 [L,QSA]
RewriteRule ^example(.*)$ /_dev/example$1 [L,QSA]

这很像创建别名,但可以在 .htaccess

中完成

对于 css 和 html 等外部资源,您只需将其路径更改为

<img src="/img/shape3.png">
例如。这样,绝对路径是根据域名(或基本路径)计算出来的,结果是 yourdomain.ext/img/shape3.png 应该可以工作。

关于php - 目录重定向规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21041748/

相关文章:

PHP , htaccess : apply page title in URL

php - 显示即将发生的事件,包括当前正在进行和即将发生的事件

php - 全新安装的 laravel 5.6 在索引页面中获取 HTTP ERROR 500

html - Bootstrap 4 : Set Width of Column Width Fixed Position Content

css - 100% 固定 div,在子 div 和固定高度标题中溢出

javascript - Python 抓取网站获得 Apache Tomcat/6.0.36 - 错误报告

php - 将 mysql 命令中声明的计算更新到 mysql 中的表中

php - 使用 PHP SimpleXML 和 XPath 解析深度 XML

html - 如何使用 CSS 使这些元素正确排列?

javascript - 配置 htaccess 以直接访问 CSS 和 JS 文件,但将所有其他请求重定向到索引文件