2013-12-16 3 views
1

То, что я хочу добиться:Добавить слэш для определенного каталога (Слим рамки)

www.mydomain/app => www.mydomain/app/ 

Только для этого URL.

Я использую тонкий Framework и это, как я обрабатывать мой маршрут:

$app->get('/', function() use ($app){ 
    // Some code goes here 
}); 

Что я пробовал:

1) Есть результаты с этим:

$app->get('/?', function() use ($app){ 
    // Some code goes here 
}); 

$app->get('(/)', function() use ($app){ 
    // Some code goes here 
}); 

2) Это один работает, но файлов нарушает мои другие маршруты:

RewriteCond $0 !^app(/|$) 
RewriteRule ^[^\.]+[^/]$ /$0/ [R=301,L] 

Например я получил маршрут

www.mydomain.com/app/panel 

после правил выше перенаправляет меня

www.mydomain.com/panel/ 

3) Этот тоже работает, но он добавляет косые черты для каждого URL:

# Add a trailing slash to any non-existent files 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} !(.*)/$ 
RewriteRule ^(.*)$ %{REQUEST_URI}/ [R=301,L] 

4) Это один перенаправляет меня www.mydomain.com/

RewriteCond %{REQUEST_URI} ^/(app|foo|bar)$ 
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1/ [R=301,L] 

Спасибо за каких-либо указаний или ссылки, которые могли бы помочь мне.

UPDATE:

Мой корневой каталог .htaccess:

AddHandler php53 .php 
Action php53 /cgi-bin/php53.cgi 


DirectoryIndex index.php 
<ifModule mod_gzip.c> 
    mod_gzip_on Yes 
    mod_gzip_dechunk Yes 
    mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$ 
    mod_gzip_item_include handler ^cgi-script$ 
    mod_gzip_item_include mime ^text/.* 
    mod_gzip_item_include mime ^application/x-javascript.* 
    mod_gzip_item_exclude mime ^image/.* 
    mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.* 
</ifModule> 
RewriteEngine on 

#RewriteCond %{REMOTE_HOST} !^192\..* 
#RewriteRule ^(.*)   http://www.randomurl.com/$1 [R,L] 



RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?rqp=$1 [L,QSA] 
php_flag last_modified 1 
php_flag register_globals 0 
php_flag display_errors 1 
php_flag magic_quotes_gpc 1 

php_flag error_reporting E_ALL 

AddDefaultCharset utf-8 

#AddType text/html .d 

AddHandler application/x-httpd-php .dll 

Мой каталог приложений .htaccess:

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule^index.php [QSA,L] 

ответ

1

Если все, что вы хотите, это www.mydomain/app => www.mydomain/app/

Тогда вы можете просто добавить эту строку в вашем DOCUMENT_ROOT/.htacces:

DirectorySlash On 

в первой строке в корне .htaccess

+0

работ для www.mydomain/приложение => www.mydomain/приложение /. Но я получаю 404 на www.mydomain/app/panel. – mintaras

+0

Как вы можете видеть, что шаблон '^ (app) $' не будет соответствовать '/ app/panel', поэтому он не будет вызывать 404. Работает ли'/app/panel' без этого правила? – anubhava

+0

Чтобы другие URL-адреса работали правильно, эти правила определены: ** RewriteEngine On RewriteCond% {REQUEST_FILENAME}!-f RewriteRule^index.php [QSA, L] ** Но тогда ваше правило перестает работать. – mintaras

Смежные вопросы