0
我已添加.htaccess調整以拒絕對.php文件的所有請求,並在內部將所有非.php請求重定向到.php文件。.htaccess拒絕.php擴展但無法觸發AJAX請求
一切工作正常在我的本地,但在生產環境中的文件上傳腳本失敗(我發現,文件上傳腳本使用JS/Ajax調用PHP文件,這是不加載)
我的.htaccess配置爲:
RewriteEngine on
# Rewrite /foo/bar to /foo/bar.php
RewriteRule ^([^.?]+)$ %{REQUEST_URI}.php [L]
# Return 404 if original request is /foo/bar.php
RewriteCond %{THE_REQUEST} "^[^ ]* .*?\.php[? ].*$"
RewriteRule .* - [L,R=404]
和JS調用:
<form class="dropzone" id="dropzoneForm" action="ads_upload"
enctype="multipart/form-data" method="post">
<div class="fallback">
<input name="file" type="file" multiple />
</div>
</form>
...............
$.post("ads_upldDelete?fname=" + file.name);//up-deletefile.php
ads_upload.php和ads_upldDelete.php都存在於服務器中,但由於模式重寫規則無法達到,我可以在模式重寫時寫入和異常允許嗎?
如果兩個不同的名稱像ads_upload.php和ads_tryagain.php會怎樣?我可以寫:RewriteCond%{REQUEST_URI}!(ads_upload.php | ads_tryagain.php)$ [NC]? –
是的,你可以!與2'(?:x | y | z | ...)'相同 – Croises