Rumah > Soal Jawab > teks badan
Saya mempunyai laman web yang dibangunkan oleh thinkphp dan saya menggunakan mod rewrite
<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/ [QSA,PT,L]
</IfModule>
thinkphp dan program berjalan seperti biasa sekarang keperluan saya ialah saya meletakkan program kecil yang dibangunkan oleh vue dalam direktori panas direktori akar laman web dan menghidupkan mod penghalaan sejarah
Mengikut dokumentasi pembangunan, untuk membuat semua laluan Ia boleh dikenali oleh pelayan, dan semua akses mesti ditulis semula ke index.hml melalui RewriteRule
Maksudnya, http://wwww.xxx.com/hot/item/1000
这样的url 解析到/hot/index.html
mesti dimuat naik
Yang lain harus dikawal oleh thinkphp
Saya telah mencuba banyak konfigurasi tetapi saya tidak biasa dengan arahan fail .htaccess, jadi saya harap semua orang boleh memberi saya penyelesaian
Balas kandungan di tingkat satu, saya juga akan siarkan di siniSaya cuba seperti berikutvue berjalan seperti biasa Apabila mod sejarah dihidupkan, apabila anda memasuki
url sedemikian untuk diakses, kerana tiada fail sedemikian pada pelayan. , ia tidak akan kembali seperti biasa, tetapi melalui fail htaaccess Apache, pengguna boleh melompat ke fail yang tidak wujud dan melompat ke fail yang ditentukan Sama seperti fail konfigurasi di bawah thinkphp yang saya siarkan di atas memainkan peranan ini, keperluan semasa saya adalah untuk meletakkan ia dalam direktori /hot Jangan majukan permintaan untuk thinkphp untuk pelaksanaan, tetapi majukannya ke /hot/index.html untuk diproses.http://www.xxx.com/hot
可以正常运行,点击各个链接也是可以正常跳转,因为html5的histroy模式只是在浏览器段改变了url地址栏,并没有向server请求数据,但是当用户直接用http://www.xxx.com/hot/item/1000
<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/(hot|hot/.*)$
RewriteRule ^/hot/index\.html$ - [L]
RewriteRule ^(hot|hot/.*)$ hot/index.html$ [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
#RewriteRule ^hot/(.*)$ hot/index.html$
#RewriteRule ".?" "-" [S=1]
#RewriteRule ^/(hot|hot/.*)$ /hot/index.html$ [L]
RewriteRule ^(.*)$ index.php/ [QSA,PT,L]
</IfModule>
Tetapi ia tidak berkesan, tidak tahu mengapa? 为情所困2017-05-16 16:59:11
Jika anda tidak tahu banyak tentang thinkphp, anda boleh melihat konfigurasi penghalaan thinkphp untuk melihat sama ada anda boleh menentukan skema penghalaan yang berbeza untuk direktori tertentu
Jika itu tidak berkesan, anda mungkin perlu menggunakan nginx
PHP中文网2017-05-16 16:59:11
Selesai, idea asal saya betul, index.php yang sentiasa dihuraikan ke direktori utama pada mulanya ternyata menjadi masalah laluan sumber rujukan saya
Siarkan konfigurasi yang sah
<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/(hot|hot/.*)$
RewriteRule ^/hot/index\.html$ - [L,NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(hot|hot/.*)$ hot/index.html [L]
RewriteCond %{REQUEST_URI} !^/(hot|hot/.*)$
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/ [QSA,PT,L]
</IfModule>
Alamat ujian: http://www.wx2share.com/hot/
Jika anda masuk terus melalui URL di atas tanpa melakukan penulisan semula url, semua fungsi akan menjadi normal,
Tetapi jika anda memasukkan melalui URL berikut
http://www.wx2share.com/hot/i...
, ia akan mengembalikan 404, tetapi selepas menulis semula url, anda boleh mengaksesnya seperti biasa