2017-05-17 10 views
0

私はKirby CMSの上に単一ページのアプリケーションを開発していて、フロントエンドでルーティングを処理できるようにホームページにリダイレクトするほとんどのページが必要です。シングルページアプリケーションのためのKirby CMSでhtaccessを設定する方法

一部のページ、つまり/ api__dataとパネルに関連するすべてのものは、カービーを通じてアクセス可能である必要があります。

正しいリダイレクトを実装するために.htaccessファイルを設定する際に問題があります。事前に助けを

# Kirby .htaccess 

# rewrite rules 
<IfModule mod_rewrite.c> 

# enable awesome urls. i.e.: 
# http://yourdomain.com/about-us/team 
RewriteEngine on 

# make sure to set the RewriteBase correctly 
# if you are running the site in a subfolder. 
# Otherwise links or the entire site will break. 
# 
# If your homepage is http://yourdomain.com/mysite 
# Set the RewriteBase to: 
# 
# RewriteBase /mysite 

# In some enviroments it's necessary to 
# set the RewriteBase to: 
# 
# RewriteBase/

# block text files in the content folder from being accessed directly 
RewriteRule ^content/(.*)\.(txt|md|mdown)$ index.php [L] 

# block all files in the site folder from being accessed directly 
# except for requests to plugin assets files 
#RewriteRule ^assets/plugins/([a-zA-Z0-9\.\-_%=]+)/(.*)$ site/plugins/$1/assets/$2 [L,N] 
#RewriteCond $1 !^plugins/[a-zA-Z0-9\.\-_%=]+/assets/.* 
RewriteRule ^site/(.*) index.php [L] 

# block direct access to kirby and the panel sources 
RewriteRule ^(kirby|panel\/app|panel\/tests)/(.*) index.php [L] 

# make panel links work 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^panel/(.*) panel/index.php [L] 

# make site links work 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*) index.php [L] 

</IfModule> 

# Additional recommended values 
# Remove comments for those you want to use. 
# 
# AddDefaultCharset UTF-8 
# 
# php_flag short_open_tag on 

ありがとう:

現在の.htaccessは次のようになります!

答えて

0

私はhtaccessファイルを編集する必要はありませんでした。私は(訪問関数内)site.phpファイルに次の行を追加しました:

if (!preg_match("/api_/i", $uri)) { 
    return $this->page = $this->homePage(); 
} 

これは、すべてのURLが(私のAPIコールを除く)のホームにリダイレクトされることが保証されます

関連する問題