我正在尝试使用 Apache mod_rewrite 使我的应用程序 URL 友好。
我心中有个重要的问题。标签 中href属性
的正确格式是什么?<a>
<a href="/about/">
<a href="about/">
<a href="/about">
css、js和图像文件呢?
<img src="images/photo.jpg">
<img src="./images/photo.jpg">
<img src="/images/photo.jpg">
我正在尝试使用 Apache mod_rewrite 使我的应用程序 URL 友好。
我心中有个重要的问题。标签 中href属性
的正确格式是什么?<a>
<a href="/about/">
<a href="about/">
<a href="/about">
css、js和图像文件呢?
<img src="images/photo.jpg">
<img src="./images/photo.jpg">
<img src="/images/photo.jpg">
这是一个难以破解的难题,因为它完全是上下文驱动的,它们可能都意味着相同的事物或完全不同的事物,具体取决于它们所显示的上下文。
很可能您在第一个示例 1 和 3 中指示了相同的位置(/about/index.html 和 /about/index.php 失败)。2 取决于链接的位置(它是相对的),所以如果它出现在http://www.mydomain.com/index.html上,大约相当于 1 和 3,但如果它在http:// www.mydomain.com/services/widget-cleaning它指的是http://www.mydomain.com/services/about/index.html(或 .php)。
在您的第二个示例中,1 和 2 相同(第二个示例中的前导 . 表示来自此目录),而示例 3 表示站点根目录中的图像目录。(即http://www.mydomain.com/images/photo.jpg)
简短的回答是您可能在第一个示例中表示 1,在第二个示例中表示 3。
对于第一个示例,mod_rewrite 无关紧要,它会查找匹配 'about',可选地使用尾部斜杠。
RewriteRule ^about/?$ about/index.php [NC,L]
关于第二个我使用图像的绝对路径来节省一些痛苦,你也可以使用规则来忽略图像和 css/js 文件。
重写规则 .(js|css|jpe?g|gif|png)$ - [L]
使用规则忽略 AJAX url 也很有用。
重写规则 ^ajax/(.+)$ - [L]