0

LE: Herausgefunden, dass meine erklärenden Fähigkeiten ziemlich schlecht sind, so werde ich am Ende schnell tl; dr drüber machen.CMSMS URL umschreiben

Ich habe kürzlich ein Projekt erhalten, das die Anpassung einer Website auf CMSMS (CMS Made Simple) beinhaltet. Die Website-Version ist 1.11.2 und ich benutze Apache und mod_rewrite, um mit der URL neu zu schreiben. Ich habe versucht, eine kleine Sache im Zusammenhang mit URL Rewrite zu lösen, aber ich komme einfach nicht vorbei.

Die Website hat ein Modul für den Blog CGBlog installiert. Um den Inhalt des Blogs anzuzeigen, brauche ich eine Seite (und eine Vorlage für die Seite, aber wir werden die Vorlage aus der Diskussion heraushalten, weil es kein Deal in dem Problem war), wo alle Beiträge verschüttet werden. Grundsätzlich eine allgemeine Kategorie/Archivseite. Also habe ich eine Seite namens 'Blog' mit der URL 'Blog' erstellt. Bis jetzt, ohne den Blog zu berücksichtigen, hätten wir etwas wie example.com/blog.

Das Blog hat eine Option, vor jedem Beitrag ein Präfix hinzuzufügen. Also kann ich etwas wie example.com/any_prefix_here/title-of-post machen. Auch innerhalb eines Blogposts wird nicht berücksichtigt, wie die Archiv-/Kategorieseite aufgerufen wird. Also habe ich diese Präfix-Option verwendet, um die URL gleich aussehen zu lassen. Beispiel: beispiel.com/blog und wenn in einem Artikel example.com/blog (als Präfix hinzugefügt)/titel-of-the-post.

Nun, das Problem ist, wenn ich versuche, den Namen der Seite des Blogs namens "Blog" behalten Ich kann nicht auf sie als example.com/blog zugreifen oder ich werde 403 verboten. Wenn ich es über example.com/anything/blog erreiche, wird es funktionieren. Wenn ich die Seite blog2 nenne, kann ich auf sie als example.com/blog2 zugreifen. Ich kann mir nicht vorstellen, wie es mit 'Blog' umgeht, wie das Wort lautet. Auch kann ich nicht herausfinden, wie man die 403 verboten umgehen kann.

Ich habe sogar versucht, es irgendwie via .htaccess aber ohne Erfolg neu zu schreiben.

Dies ist mein htaccess im Moment.

# Attempt to override some php settings, these settings may be helpful on some hosts if your 
# default configuration does not meet CMS's minimum requirements, and your host 
# has given your account appropriate permissions 
#php_value upload_max_filesize "10M" 
#php_value session_save_path "tmp/cache" 

#php_flag magic_quotes_gpc Off 
#php_flag register_globals Off 
#php_flag session.use_trans_sid Off 

# (this is important, so uncomment if your host permit) 
Options -Indexes 
ServerSignature Off 

Options +FollowSymLinks 

# To prevent E_STRICT problems with PHP 5.3+ you can uncomment the following lines 
# Note: These settings should only be enabled for production sites! 
#php_flag display_startup_errors 0 
#php_flag display_errors 0 
#php_flag html_errors 0 
#php_value docref_root 0 
#php_value docref_ext 0 

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/

# redirects /index.php?page=asfd to /asdf 
RewriteCond %{THE_REQUEST} /index\.php\?page=([^\s&]+) [NC] 
RewriteRule^/%1? [R=302,L,NE] 

# redirects /index.php/asfd to /asdf 
RewriteCond %{THE_REQUEST} /index\.php/([^?\s]+)\s [NC] 
RewriteRule^/%1 [R=302,L,NE] 

RewriteCond %{THE_REQUEST} ^.*/index\.php 
RewriteRule ^(.*)index.php$ /$1 [R=301,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.+)$ index.php?page=$1 [QSA,L] 

RewriteCond %{HTTP_HOST} ^connsys.ro 
RewriteRule (.*) http://www.connsys.ro/$1 [R=301,L] 
</IfModule> 


<IfModule mod_header.c> 
# Disable ETags 
Header unset ETag 
FileEtag None 
</IfModule> 

<IfModule mod_deflate.c> 
# Compress css, plaintext, xml, gif, and images in transport. 
AddOutputFilterByType DEFLATE text/css text/plain text/xml image/gif image/jpeg image/png 
</IfModule> 

<IfModule mod_expires.c> 
<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$"> 
# Set expires tags on various files... so that the browser wont attempt to reload them. 
ExpiresActive On 
ExpiresDefault "access plus 1 year" 
<IfModule mod_header.c> 
    # Setting cache control to public allowes proxy servers to cache the items too. 
    Header set Cache-Control "public" 
</IfModule> 
</FilesMatch> 
</IfModule> 

# compress text, html, javascript, css, xml: 
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 

# Or, compress certain file types by extension: 
<files *.html> 
SetOutputFilter DEFLATE 
</files> 

<IfModule mod_headers.c> 
# WEEK 
<FilesMatch "\.(jpg|jpeg|png|gif|swf|woff)$"> 
    Header set Cache-Control "max-age=604800, public" 
</FilesMatch> 
</IfModule> 

Tl; dr: url umschreiben Problem/Erlaubnis Problem auf der Blog-Seite. Die Seite heißt "Blog" und slug/url ist "Blog". Ich kann nicht auf Blog als example.com/blog zugreifen, da ich 403 nicht bekomme. Wenn ich auf das Blog als example.com/anything/blog zugreife, funktioniert es. Wenn ich die Seite in blog2 umbenenne, funktioniert sie als example.com/blog2.

Wie soll ich dieses Problem angehen? Ich wäre dir dankbar, wenn du mich nicht abmeldest und mir erzählst, was ich falsch gemacht habe, falls ich etwas falsches erklären sollte.

Danke

+0

Die URLs, von denen Sie sprechen, sind diejenigen, die Sie in der Adressleiste Ihres Browsers sehen. Sie müssen genau herausfinden, was sie intern sind und was tatsächlich die 403 sendet. Fügen Sie oben in "index.php", vor allem anderen Code, diese Zeile hinzu: 'var_dump ($ _ SERVER); sterben; 'und notieren Sie die Ausgabe der URLs. Wenn sie alle durchkommen und es keinen signifikanten Unterschied zwischen ihnen gibt (abgesehen vom Pfad der URL), dann ist Ihr Problem wahrscheinlich nicht in Ihrem '.htaccess'. – Walf

+0

Nun, wenn ich auf die Homepage zugreifen bekomme ich die var_dump. Wenn ich auf den/blog zugreife, bekomme ich immer noch die 403 verbotene Nachricht vom Server. Aber ich bezweifle, dass es sich um ein Serverproblem handelt, da die Website um 3 oder 4 Webserver verschoben wurde, auf denen alle dasselbe Problem haben. – Darkkz

+0

Das ist nützlich; Jetzt wissen Sie, dass die Datei index.php die Anfrage niemals erhält.Wenn alle Server dasselbe Problem haben, ist es wahrscheinlich Ihr Code. Holen Sie sich ein Rewrite-Tracing, um zu sehen, was wirklich vor sich geht. – Walf

Antwort

1

Gibt es ein echtes Verzeichnis blog genannt? Ist entweder keine Indexdatei/automatische Indizierung deaktiviert oder sind die Berechtigungen nicht korrekt?