2017-06-10 16 views
0

私は現在更新中のウェブサイトを持っています。すべてのライブラリ、リソース、設定などをフォルダnewsiteにコピーしました。私はルートの古いサイトを書き換えるURLを実装していないので、私は更新サイトでそれを実装したい。したがって、私は新しいサイトフォルダの中に.htaccessファイルを追加しました。以下はフォルダ構造です。.htaccessファイルはルートフォルダではなくサブフォルダ内にのみあります

root/ 
|-- config/ 
|-- libraries/ 
|-- resources/ 
|-- newsite/ 
|  |-- config/ 
|  |-- libraries/ 
|  |-- resources/ 
|  |-- index.php 
|  |-- .htaccess 
|-- index.php 
|-- login.php 
|-- services.php 
|-- contact.php 

私は古いサイトを今のところ機能させたいが、私は新しいサイトにURL書き換えを実装したい。

基本的に新しいサイトのURLのは次のようになります。

https://exmple.com/newsite/ 
https://exmple.com/newsite/services 
https://exmple.com/newsite/login 
https://exmple.com/newsite/contact 

またはURLのいずれかの他の。以下は書き換えルールです。

RewriteEngine On 
RewriteBase /newsite 
RewriteCond %{REQUEST_URI} ^/newsite 
RewriteRule ^newsite/(.+)$ /newsite/index.php?page_name=$1 [QSA,L] 
+0

/newsite /はroot/newsite/.htaccessのために破棄されるため、このルールはroot/.htaccessに対してのみ意味があります。冗長な 'RewriteBase'も削除してください。 – Deadooshka

答えて

0

私が正しく理解していた場合は、次のようにこれはないURLに/ /パブリック/または/ルートで始まらないすべての要求をリダイレクトします

RewriteEngine On 

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

を動作するはずです。

希望に役立ちます。

+0

これは機能しません。あなたの場合は、フォルダを無視しています。しかし、もしそのフォルダがURLにあれば、それはURLを書き換えなければなりません。 –

+0

は1つのルーティングページを作成し、すべてのURLは追加後にルーティングします。 'root/.htaccess'のようなルートフォルダ内のhtaccessファイル –

関連する問題