2017-02-13 4 views
5

URLを短縮しようとしていますが、悲しいことに役立つものが見つかりません。URLから.htaccess経由でフォルダパスを切断しました

私は自分のコードをフォルダで分割します。インデックスは私の.htaccessのようにrootに置かれます。

localhost/php/getBets.php 

、それは

localhost/getBets/ 
になりたい: フォルダは、私は次のようなリンクを持っている

[...]ファイルの拡張子のような名前なので、PHP、JS、CSSされています

私はすでにカット部分を持っているが、最後に.phpの拡張子ですので、ここで私の完全な.htaccesある

Options +FollowSymLinks -MultiViews 
RewriteEngine On 
RewriteBase/

# Hide Index 
IndexIgnore * 

# Forbid accessing certain sites 
RedirectMatch 403 ^/.gitignore$ 
RedirectMatch 403 ^/.htaccess$ 
RewriteRule ^(?!index)(?!.*getBets).*\.(php|rb|py|txt|md|sql|inc)$ - [F,L,NC] 

# Hide .php file ending in URL 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^/]+)/$ $1.php 
RewriteRule ^([^/]+)/([^/]+)/$ /$1/$2.php 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$ 
RewriteRule (.*)$ /$1/ [R=301,L] 

誰かが私がこれをどのように達成できるか教えてもらえますか? :) ありがとう!

答えて

2

使用%{REQUEST_URI}、この例のように:で

RewriteRule ^(.+)/$ /path-dirname/$1 [R=301,L] 

がリセットされることがあります

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([\w-]+)/$ php/$1.php [L] 
+0

ありがとう。 <3 –

0

実際にはApacheにはpathinfo($、PATHINFO_DIRNAME)がありません。PHPのような機能です。あなたはそれを書き換えるためであるルートディレクトリにルールの下に使用することができ、あなたの必要なURLについては

RewriteCond %{REQUEST_URI} ^(.+)/$ 
RewriteRule ^.+/$ %1 [R=301,L] 
+0

私はそれが何であるか分かりませんが、私がこれらの行を追加してlocalhost/getBetsにアクセスすると、次のURLにアクセスします。 "http:// localhost/php/php/php/php/php/php/php/php/php/php/getBets " –

関連する問題