需要帮助从modlrewrite中删除url中的部分文件名

时间:2011-12-01 02:19:16

标签: mod-rewrite

我正在尝试将我的网址重新格式化为更短。现在链接最终如下:website.com/image?id = name.jpg

我想要的链接是m.website.com/name,而网址中没有文件exension或image.php文件。我认为mod_rewrite就是这样做的,所以任何帮助都会非常感激。

1 个答案:

答案 0 :(得分:0)

为了使访问网址http://m.website.com/name的人获得http://website.com/image?id=name.jpg的内容服务,首先需要检查 m.website.com 的主机名,然后匹配URI的名称部分。使用该匹配,您可以代理请求(使用 [P] ),或者如果同时托管website.comm.website.com服务器,只需内部重写。尝试将它放在文档根目录中的.htaccess文件中:

RewriteEngine on
# check the host (NC = no case)
RewriteCond %{HTTP_HOST} ^m\.website\.com$ [NC]
# don't rewrite /image
RewriteCond %{REQUEST_URI} !^/image
# Match the first non-slash word and rewrite
RewriteRule ^([^/]+)$ /image?id=$1 [L]

这会将http://m.website.com/name重写为/image?id=name.jpg,但不会重写http://m.website.com/path/name。如果您希望路径(以及其他所有内容)包含在 id 参数中,请将([^ /] +)更改为(。*)