用于替换URL中的字符串的mod_rewrite规则

时间:2014-01-28 15:59:41

标签: apache .htaccess mod-rewrite url-rewriting

我想从旧网址替换字符串:

http://www.homepage.com/projectname/public/ActionName.action

http://www.homepage.com/ActionName.action

甚至

http://www.homepage.com/short

我到了这一点(试图缩短到http://www.homepage.com/ActionName.action

RewriteEngine On
RewriteRule ^/projectname/public/(.*)$ http://www.homepage.com/$1 [R=301,L]

但是我收到了404错误:

The requested resource (/projectnameActionName.action) is not available.

1 个答案:

答案 0 :(得分:0)

我认为您正在寻找internal重定向。

因此,如果您希望能够在浏览器中输入这样的URL:

http://www.homepage.com/ActionName.action

但显示如下页面:

http://www.homepage.com/projectname/public/ActionName.action

然后在your.htaccess中使用此代码。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+) http://www.homepage.com/projetname/public/$1 [NC,L]

当然要将域名和文件夹替换为您的域名和文件夹。