Control Web Panel
Other => Other => Topic started by: Colbyt on May 27, 2020, 01:58:09 PM
-
I have one old site that I've not upgraded. So I tried selecting php 5.6 for it. But I get a 500 error and the logs show:
<snip>/public_html/.htaccess: RewriteRule: bad flag delimiters, referer: <snip>
On the same CWP server the exact same set of rules are working fine on another site running php 7.x. Therefore I conclude it is something related. This is the .htaccess file. The actuual file name were replaced for this post:
AddHandler application/x-httpd-php56 .php
# AddType application/x-httpd-php .html .htm #works on local host
AddType application/x-httpd-php .html .htm
# DirectoryIndex offline.html index.php
DirectoryIndex offline.html index.html index.php
RewriteEngine on
#ErrorDocument 404 /404.html
# rewrite base will need to be adjusted for use on server, most likely to /
# localhost on xammpp, when active dierctory is xampp/htdocs/dirname then RewriteBase needs /dirname/
# or just don't use it at all. It seems to work fine without it also.
#RewriteBase /dirname/
# These are the problem lines
# rewites the script1.php URLs using / note the $3 is for the pagination
RewriteRule ^([0-9] )/(.*)-([0-9] )\.html$ script1.php?cat_id=$1&page=$3 [L,NC]
# rewrites the script2.php URLs using P- and /
RewriteRule ^P-([0-9] )/(.*)\.html$ script2.php?id=$1 [L,NC]
# rewrites the script3.php URLs
RewriteRule ^([0-9] )-(.*)\.html$ script3.php?id=$1 [L,NC]
-
Try adding RewriteCond %{REQUEST_URI} !/script\.php$
-
Additonal Info. You really should Quote the Rule. This should be your lines for ANY php version. As noted above, you should have a RewriteCond for each script?.php file so that you prevent apache from an endless loop.
RewriteRule "^([0-9] )/(.*)-([0-9] )\.html$ script1.php?cat_id=$1&page=$3" [NC,L]
# rewrites the script2.php URLs using P- and /
RewriteRule "^P-([0-9] )/(.*)\.html$ script2.php?id=$1" [NC,L]
# rewrites the script3.php URLs
RewriteRule "^([0-9] )-(.*)\.html$ script3.php?id=$1" [NC,L]