मेरे पास 404 त्रुटि पृष्ठ वाला एक साइट है, जो इस तरह htaccess में स्थापित है:
ErrorDocument 404 http://www.example.com/error404.php
यह ठीक काम करता है यदि आप किसी ऐसे पृष्ठ तक पहुंचने का प्रयास करते हैं जो मौजूद नहीं है:
www.example.com/nonsensepage.php
www.example.com/nonsensepage.htm
लेकिन Google खोज में पिछली साइट (जूमला साइट) से कुछ पुराने लिंक हैं, जिनमें निम्न प्रारूप है:
www.example.com/index.php/news
और यह मेरे 404 पेज द्वारा पकड़ा नहीं गया है। इसके बजाय यह मेरे सूचकांक पृष्ठ पर जाता है और पृष्ठ को तोड़ देता है!
मैं कैसे सुनिश्चित कर सकता हूं कि मेरा 404 पृष्ठ सभी गलत यूआरएल पकड़ता है?
धन्यवाद
संपादित करें:
मैंने पहले से ही डुप्लिकेट प्रश्न का उत्तर देने की कोशिश की है, (AcceptPathInfo को जोड़ने के लिए) लेकिन यह मेरे लिए काम नहीं कर रहा है।
मेरे एचटीएसीएएस फ़ाइल में यह सब कुछ है:
DirectoryIndex index.php
AcceptPathInfo Off
CheckSpelling Off
## EXPIRES CACHING ##
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 month"
ExpiresByType image/jpeg "access 1 month"
ExpiresByType image/gif "access 1 month"
ExpiresByType image/png "access 1 month"
ExpiresByType text/css "access 1 month"
ExpiresByType text/html "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 month"
ExpiresDefault "access 1 month"
</IfModule>
## EXPIRES CACHING ##
FileETag none
ServerSignature Off
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{http_host} ^example.com [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,NC]
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
ErrorDocument 404 http://www.example.com/error404.php
मैं केवल एक ऐसे समाधान से खुश हूं जो किसी पिछली सामग्री और स्लेश को स्ट्रिप्स करता है, हमेशा निर्देशित करता है:
index.php/anything
या तो index.php या error404.php करने के लिए
उत्तर:
उत्तर № 1 के लिए 4स्लैश के बाद आप 404 भेजने के लिए अपनी .htaccess के शीर्ष पर यह लाइन जोड़ सकते हैं .php
फाइलें:
AcceptPathInfo Off
वैकल्पिक रूप से आप इस पुनर्लेखन नियम का उपयोग कर सकते हैं:
RewriteEngine On
RewriteRule .php/.+$ [L,NC,R=404]