2016-06-26 3 views
0

私は私の.htaccessファイルにこのコードを持って動作しません。 urlはhttp://www.website.com/subfolder/index.php?link=somepageのhtaccessのRewriteRuleが正しく

私はApache 2.4.18をUbuntu 16に、mod_rewriteモジュールがロードされています。

更新も

が、私はこれを試してみてください。

RewriteRule^index.php [L] 

は、その後、私はそうhttp://www.website.com/subfolder/?link=somepage
だけindex.php

を削除するとき、それは動作します。この方法でアクセスすることができますが、それは可能ですいくつかの追加の設定をサーバーに設定する必要がありますか?

+0

.htaccessファイルが置かれていますか?サブフォルダーの下に? –

+0

は@MuhammadSumonMollaSelimはい –

+0

ので、訪問 'ます。http:// www.website.com /サブフォルダ/ somepage'はあなたに404を与えますか? –

答えて

1

これは、MIMEタイプとマルチビューを含むサーバーの問題でした。

それは本当にstackoverflowのための問題ではないですが、誰かがここで同じ問題に実行する場合、この問題を解決したソースです:

0

試してみてください。

RewriteEngine On 

    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ /subfolder/index.php?link=$1 [L] 
+0

おかげではなく、同じことを再度 –

0

これを試してみてください:すべての

Options +FollowSymLinks 
RewriteEngine On 

RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteCond %{SCRIPT_FILENAME} !-f 
RewriteRule ^(.*)$ ./index.php?link=$1 
+0

は、私は再び404を取得し、助けにはなりませんでした –

0

まずあなたがチェックする必要があり、あなたのApacheの設定

sudo vi /etc/apache2/apache2.conf 

検索

<Directory /var/www/> 
    Options Indexes FollowSymLinks 
    AllowOverride None 
    Require all granted 
</Directory> 

変更AllowOverrideのAllowOverrideのになしすべて

はその後、サーバー

sudo service apache2 restart 

を再起動して、プロジェクトフォルダ内のこの.htaccessファイルを使用してCMD

sudo a2enmod rewrite 

を実行して、htaccessのモジュールを有効にします

Options +FollowSymlinks 
RewriteEngine On 
RewriteCond %{REQUEST_URI} ^/system.* 
RewriteRule ^(.*)$ index.php?/$1 [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.+)$ index.php?/$1 [L] 

希望します。:)