Apache 用于替换URL中字符串的mod_重写规则

Apache 用于替换URL中字符串的mod_重写规则,apache,.htaccess,mod-rewrite,url-rewriting,Apache,.htaccess,Mod Rewrite,Url Rewriting,我想替换旧URL中的字符串: http://www.homepage.com/projectname/public/ActionName.action 到 甚至 http://www.homepage.com/short 我说到这里(试图把它缩短为http://www.homepage.com/ActionName.action) 但我得到一个404错误: The requested resource (/projectnameActionName.action) is not availa

我想替换旧URL中的字符串:

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

甚至

http://www.homepage.com/short
我说到这里(试图把它缩短为
http://www.homepage.com/ActionName.action

但我得到一个404错误:

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

我认为您正在寻找一个
内部
重定向

因此,如果您希望能够在浏览器中放置如下URL:

http://www.homepage.com/ActionName.action
但是显示这样的页面:

http://www.homepage.com/projectname/public/ActionName.action
然后在.htaccess中使用此代码

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+) http://www.homepage.com/projetname/public/$1 [NC,L]
当然,将域名和文件夹替换为您的

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