使用htaccess在URL中间添加目录

时间:2011-08-21 04:24:39

标签: apache .htaccess url-rewriting url-routing

我当前的.htacces文件如下所示:

DirectoryIndex index.php
RewriteEngine on
RewriteCond $1 !^(index\.php|assets|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php/$1 [L,QSA]

我要完成的任务(以及上述内容)是将http://domain.com/pages/pagename之类的网址更改为http://domain.com/index.php/pages/view/pagename之类的内容。

请注意,我仍然需要没有http://domain.com/search等/ page / part的网址转到http://domain.com/index.php/search。我正在使用CodeIgniter。

到目前为止我想出的是:

DirectoryIndex index.php
RewriteEngine on
RewriteCond $1 !^(index\.php|assets|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php/$1 [L,QSA]

RewriteCond %{REQUEST_URI} ^/pages/(.*)
RewriteRule ^(.*)$ ./index.php/pages/index/$1 [L,QSA]

但它没有用。

2 个答案:

答案 0 :(得分:0)

RewriteRule ^pages/(.*) /index.php/pages/index/$1

答案 1 :(得分:0)

试试这个:

RewriteEngine on

# do not do anything for already existing files
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule .+ - [L]

# /pages/ specific rule
RewriteRule ^pages/(.*)$ index.php/pages/index/$1 [L]
# everything else
RewriteRule ^(.*)$ index.php/$1 [L]

以上假设http://domain.com/pages/不是真正的文件夹。