/ / 404 पृष्ठ पिछला स्लैश के साथ लिंक के लिए काम नहीं कर रहा है - php, html, .htaccess, http-status-code-404

404 पेज पिछला स्लैश के साथ लिंक के लिए काम नहीं कर रहा है - php, html, .htaccess, http-status-code-404

मेरे पास 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]