Php通过.htaccess重写url

Jus*_*ode 5 php .htaccess mod-rewrite yii zurmocrm

我想通过使用.htaccess重写来重写一些URL

我有这样的网址:

domain.com/app/index.php/appmedia/default/login

并希望重写用户

domain.com/app/index.php/zurmo/default/login

那么,将会发生什么是用户将在浏览器中看到appmedia,但在后端它将访问zurmo

我是php的新手,已经读过一些像这样没有运气的博客

还试过这个

RewriteEngine On
RewriteRule ^app/index.php/appmedia/default/login.*$ http://domain.com/app/index.php/zurmo/default/login [R=301,L]
Run Code Online (Sandbox Code Playgroud)

它说页面没有正确重定向

编辑.htaccess文件

RewriteEngine On
RewriteRule ^app/index.php/appmedia/default/login.*$ http://mydomainx.com/app/index.php/zurmo/default/login [R=301,L]
Run Code Online (Sandbox Code Playgroud)

Pan*_*ack 2

你不能使用[R=301]并期望 URL 不会更改。R 表示重定向。所以它会更改为您告诉它的 URL。对于内部重写,您需要将其保留。

如果您的文档根目录中有 .htaccess,那么您应该能够执行此操作。我不知道你的设置如何,但这应该重写 URI。

Options -Multiviews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^app/index.php/appmedia/default/login/?$ /app/index.php/zurmo/default/login [L]
Run Code Online (Sandbox Code Playgroud)

如果您使用yii 框架,请像这样:

'urlManager' => array (
 'class' => 'application.core.components.ZurmoUrlManager',
 'urlFormat' => 'path',
'caseSensitive' => true,
'showScriptName' => true,
'rules' => array(
 // Begin Not Coding Standard
 // API REST patterns
 array('zurmo/default/login','pattern' => 'appmedia/default/login', 
Run Code Online (Sandbox Code Playgroud)