如何使用 mod_rewrite 将某些类型的传入 url 发送到服务器上的特定文件?
理想情况下,任何 html 请求都会加载一个文件(例如 /var/www/sites/urlprocessor.php),然后该文件将确定请求的内容并根据 url 显示适当的内容。
示例:假设我想要一个 url 来列出一些“汽车”。我希望以下 URL 加载 urlprocessor.php 文件,而不是加载实际页面,而不是进行重定向。
http://www.mydomain.com/cars.html --> /var/www/sites/urlprocessor.php
http://www.mydomain.com/cars.htm --> /var/www/sites/urlprocessor.php
http://www.mydomain.com/cars --> /var/www/sites/urlprocessor.php
另一方面,非 html 请求(jpg、pdf 等)将继续正常进行,而无需加载 urlprocessor.php 文件。
我目前正在使用下面的最后一行代码来完成此操作。它 301 将所有 html 页面请求重定向到“index.html”,然后加载 urlprocessor.php 文件。我更喜欢只加载没有 301 重定向的文件。
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^mydomain\.com
RewriteRule ^(.*)$ http://www.mydomain.com/$1 [R=301,L]
RewriteRule !^.*(\.gif|\.GIF|\.png|\.mp3|\.m3u|\.js|\.jpg|\.JPG|\.css|\.swf|\.flv|\.ico|\.wav|\.doc|\.DOC|\.pdf|\.PDF|\.xls|\.XLS|\.txt|\.TXT)$ index.html [L]
有没有办法直接转到文件而不进行重定向?
谢谢!!
汤姆