使用htaccess重写url的一部分

时间:2013-05-22 15:30:37

标签: .htaccess url-rewriting

我有一个这样的网址:
http://localhost/mysite/application/assets/projects/projectname 我想要这个:
http://localhost/mysite/projectname。 我在.htaccess

中使用此代码
RewriteEngine on
RewriteRule ^applicaion/assets/projects/(.*)$ http://localhost/mysite/$1 [QSA,L]

但是当我点击http://localhost/mysite/projectname时,apache错误:object not found。什么错了?

项目:https://docs.google.com/file/d/1TsNsxSMqBZOkdRKWMZ606dKVSz0_k2coBJ4qmmByl2ksWYG2D1J2nog_97bT/edit?usp=sharing

2 个答案:

答案 0 :(得分:0)

我认为你的问题是重写规则在开头有一个^,这使得规则要求URI 以应用程序/资产/等开始 ...

但是,您的原始网址以mysite / application

开头

尝试更改规则以在其中包含mysite ..

答案 1 :(得分:0)

这解决了我的情况:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(/$|\.)
RewriteRule ^(.*)$ application/assets/projects/$1/ [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ application/assets/projects/$1 [L]