1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

XF 1.4 Friendly URLs not working

Discussion in 'Troubleshooting and Problems' started by clove28, May 16, 2015.

  1. clove28

    clove28 Active Member

    I've been trying to set up friendly url but always gets 404 error

    Here's my httpd.conf
    Code:
    ServerTokens Prod
    ServerRoot "/etc/httpd"
    PidFile run/httpd.pid
    Timeout 30
    KeepAlive Off
    MaxKeepAliveRequests 100
    KeepAliveTimeout 10
    
    <IfModule prefork.c>
        StartServers       8
        MinSpareServers    5
        MaxSpareServers   20
        ServerLimit      256
        MaxClients       200
        MaxRequestsPerChild  4000
    </IfModule>
    
    <IfModule worker.c>
        StartServers         2
        MaxClients         200
        MinSpareThreads     25
        MaxSpareThreads     75
        ThreadsPerChild     25
        MaxRequestsPerChild  4000
    </IfModule>
    
    <IfModule itk.c>
        StartServers       8
        MinSpareServers    5
        MaxSpareServers   20
        ServerLimit      256
        MaxClients       256
        MaxRequestsPerChild  4000
    </IfModule>
    
    LoadModule auth_basic_module modules/mod_auth_basic.so
    LoadModule auth_digest_module modules/mod_auth_digest.so
    LoadModule authn_file_module modules/mod_authn_file.so
    LoadModule authn_alias_module modules/mod_authn_alias.so
    LoadModule authn_anon_module modules/mod_authn_anon.so
    #LoadModule authn_dbm_module modules/mod_authn_dbm.so
    LoadModule authn_default_module modules/mod_authn_default.so
    LoadModule authz_host_module modules/mod_authz_host.so
    LoadModule authz_user_module modules/mod_authz_user.so
    LoadModule authz_owner_module modules/mod_authz_owner.so
    LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
    #LoadModule authz_dbm_module modules/mod_authz_dbm.so
    LoadModule authz_default_module modules/mod_authz_default.so
    #LoadModule ldap_module modules/mod_ldap.so
    #LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
    LoadModule include_module modules/mod_include.so
    LoadModule log_config_module modules/mod_log_config.so
    LoadModule logio_module modules/mod_logio.so
    LoadModule env_module modules/mod_env.so
    LoadModule ext_filter_module modules/mod_ext_filter.so
    LoadModule mime_magic_module modules/mod_mime_magic.so
    LoadModule expires_module modules/mod_expires.so
    LoadModule deflate_module modules/mod_deflate.so
    LoadModule headers_module modules/mod_headers.so
    LoadModule usertrack_module modules/mod_usertrack.so
    LoadModule setenvif_module modules/mod_setenvif.so
    LoadModule mime_module modules/mod_mime.so
    LoadModule dav_module modules/mod_dav.so
    LoadModule status_module modules/mod_status.so
    LoadModule autoindex_module modules/mod_autoindex.so
    #LoadModule info_module modules/mod_info.so
    #LoadModule dav_fs_module modules/mod_dav_fs.so
    LoadModule vhost_alias_module modules/mod_vhost_alias.so
    LoadModule negotiation_module modules/mod_negotiation.so
    LoadModule dir_module modules/mod_dir.so
    LoadModule actions_module modules/mod_actions.so
    #LoadModule speling_module modules/mod_speling.so
    #LoadModule userdir_module modules/mod_userdir.so
    LoadModule alias_module modules/mod_alias.so
    LoadModule rewrite_module modules/mod_rewrite.so
    LoadModule proxy_module modules/mod_proxy.so
    #LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
    #LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
    #LoadModule proxy_http_module modules/mod_proxy_http.so
    #LoadModule proxy_connect_module modules/mod_proxy_connect.so
    LoadModule cache_module modules/mod_cache.so
    LoadModule suexec_module modules/mod_suexec.so
    #LoadModule disk_cache_module modules/mod_disk_cache.so
    #LoadModule file_cache_module modules/mod_file_cache.so
    #LoadModule mem_cache_module modules/mod_mem_cache.so
    LoadModule cgi_module modules/mod_cgi.so
    LoadModule version_module modules/mod_version.so
    
    Include conf.d/*.conf
    
    ExtendedStatus On
    
    User apache
    Group apache
    
    ServerAdmin root@localhost
    UseCanonicalName Off
    DocumentRoot "/var/www/html"
    <Directory />
        Options SymLinksIfOwnerMatch
        AllowOverride All
    </Directory>
    
    <Directory "/var/www/html">
        Options Indexes SymLinksIfOwnerMatch
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
    
    <IfModule mod_userdir.c>
        UserDir public_html
    </IfModule>
    
    DirectoryIndex index.php index.htm index.html
    
    AccessFileName .htaccess
    <Files ~ "^\.ht">
        Order allow,deny
        Deny from all
    </Files>
    TypesConfig /etc/mime.types
    
    DefaultType text/plain
    
    <IfModule mod_mime_magic.c>
        MIMEMagicFile conf/magic
    </IfModule>
    
    HostnameLookups Off
    
    ErrorLog logs/error_log
    LogLevel warn
    
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common
    LogFormat "%{Referer}i -> %U" referer
    LogFormat "%{User-agent}i" agent
    LogFormat "%b" bytes
    CustomLog logs/access_log combined
    
    ServerSignature Off
    
    Alias /icons/ "/var/www/icons/"
    
    <Directory "/var/www/icons">
        Options Indexes MultiViews
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
    
    <Directory "/var/www/html">
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
    
    ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
    
    <Directory "/var/www/cgi-bin">
        AllowOverride All
        Options ExecCGI
        Order allow,deny
        Allow from all
    </Directory>
    
    IndexOptions FancyIndexing VersionSort NameWidth=* HTMLTable
    
    AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
    AddIconByType (TXT,/icons/text.gif) text/*
    AddIconByType (IMG,/icons/image2.gif) image/*
    AddIconByType (SND,/icons/sound2.gif) audio/*
    AddIconByType (VID,/icons/movie.gif) video/*
    AddIcon /icons/binary.gif .bin .exe
    AddIcon /icons/binhex.gif .hqx
    AddIcon /icons/tar.gif .tar
    AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
    AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
    AddIcon /icons/a.gif .ps .ai .eps
    AddIcon /icons/layout.gif .html .shtml .htm .pdf
    AddIcon /icons/text.gif .txt
    AddIcon /icons/c.gif .c
    AddIcon /icons/p.gif .pl .py
    AddIcon /icons/f.gif .for
    AddIcon /icons/dvi.gif .dvi
    AddIcon /icons/uuencoded.gif .uu
    AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
    AddIcon /icons/tex.gif .tex
    AddIcon /icons/bomb.gif core
    AddIcon /icons/back.gif ..
    AddIcon /icons/hand.right.gif README
    AddIcon /icons/folder.gif ^^DIRECTORY^^
    AddIcon /icons/blank.gif ^^BLANKICON^^
    DefaultIcon /icons/unknown.gif
    ReadmeName README.html
    HeaderName HEADER.html
    IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t
    AddLanguage ca .ca
    AddLanguage cs .cz .cs
    AddLanguage da .dk
    AddLanguage de .de
    AddLanguage el .el
    AddLanguage en .en
    AddLanguage eo .eo
    AddLanguage es .es
    AddLanguage et .et
    AddLanguage fr .fr
    AddLanguage he .he
    AddLanguage hr .hr
    AddLanguage it .it
    AddLanguage ja .ja
    AddLanguage ko .ko
    AddLanguage ltz .ltz
    AddLanguage nl .nl
    AddLanguage nn .nn
    AddLanguage no .no
    AddLanguage pl .po
    AddLanguage pt .pt
    AddLanguage pt-BR .pt-br
    AddLanguage ru .ru
    AddLanguage sv .sv
    AddLanguage zh-CN .zh-cn
    AddLanguage zh-TW .zh-tw
    LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW
    ForceLanguagePriority Prefer Fallback
    
    AddDefaultCharset UTF-8
    
    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz
    AddType image/x-icon .ico
    
    AddType text/html .shtml
    AddOutputFilter INCLUDES .shtml
    
    ErrorDocument 403 /error/403.html
    ErrorDocument 404 /error/404.html
    ErrorDocument 500 /error/50x.html
    ErrorDocument 501 /error/50x.html
    ErrorDocument 502 /error/50x.html
    ErrorDocument 503 /error/50x.html
    ErrorDocument 506 /error/50x.html
    
    BrowserMatch "Mozilla/2" nokeepalive
    BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
    BrowserMatch "RealPlayer 4\.0" force-response-1.0
    BrowserMatch "Java/1\.0" force-response-1.0
    BrowserMatch "JDK/1\.0" force-response-1.0
    BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
    BrowserMatch "MS FrontPage" redirect-carefully
    BrowserMatch "^WebDrive" redirect-carefully
    BrowserMatch "^WebDAVFS/1.[0123]" redirect-carefully
    BrowserMatch "^gnome-vfs/1.0" redirect-carefully
    BrowserMatch "^XML Spy" redirect-carefully
    BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully
    
    #
    # Deflate output configuration
    #
    AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css
    BrowserMatch ^Mozilla/4 gzip-only-text/html
    BrowserMatch ^Mozilla/4\.0[678] no-gzip
    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
    Here's my .htaccess
    Code:
    Header unset Pragma
    FileETag None
    Header unset ETag
    
    # 1 YEAR
    <FilesMatch "\.(ico|pdf|flv)$">
    Header set Cache-Control "max-age=29030400, public"
    </FilesMatch>
    # 1 WEEK
    <FilesMatch "\.(jpg|jpeg|png|gif|swf)$">
    Header set Cache-Control "max-age=604800, public"
    </FilesMatch>
    # 2 DAYS 172800
    <FilesMatch "\.(xml|txt|css|js)$">
    Header set Cache-Control "max-age=604800, proxy-revalidate"
    </FilesMatch>
    # 1 MIN
    <FilesMatch "\.(html|htm)$">
    Header set Cache-Control "max-age=60, private, proxy-revalidate"
    </FilesMatch>
    
    <FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$">
    Header set Expires "Thu, 15 Dec 2011 20:00:00 GMT"
    </FilesMatch>
    
    RewriteEngine On
    
    RewriteCond %{QUERY_STRING} (^|\?)f=([0-9]+)&t=([0-9]+)($|&)
    RewriteRule ^viewtopic\.php$ /index.php?threads/%3/ [R=301,L]
    
    RewriteCond %{QUERY_STRING} (^|\?)f=([0-9]+)($|&)
    RewriteRule ^viewforum\.php$ /index.php?forums/%2/ [R=301,L]
    
    RewriteBase /xenforo
    
    # Use PHP5.4 Single php.ini as default
    AddHandler application/x-httpd-php54s .php
    #
    # Uncomment the statement below if you want to make use of
    # HTTP authentication and it does not already work.
    # This could be required if you are for example using PHP via Apache CGI.
    #
    ## EXPIRES CACHING ##
    
    <IfModule mod_expires.c>
    
    # Enable expirations
    ExpiresActive On
    
    # Default directive
    ExpiresDefault "access plus 1 month"
    
    # My favicon
    ExpiresByType image/x-icon "access plus 1 year”
    
    # Images
    ExpiresByType image/gif "access plus 1 month"
    ExpiresByType image/png "access plus 1 month"
    ExpiresByType image/jpg "access plus 1 month"
    ExpiresByType image/jpeg "access plus 1 month"
    
    # CSS
    ExpiresByType text/css "access 1 month”
    
    # Javascript
    ExpiresByType application/javascript "access plus 1 year"
    
    </IfModule>
    
    ## EXPIRES CACHING ##
    #<IfModule mod_rewrite.c>
    #RewriteEngine on
    #RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
    #</IfModule>
    
    <Files "config.php">
    Order Allow,Deny
    Deny from All
    </Files>
    
    <Files "common.php">
    Order Allow,Deny
    Deny from All
    </Files>
    DirectoryIndex portal.php index.php index.html index.htm
    <IfModule mod_rewrite.c>
    RewriteEngine on
    
    Rewriterule ^blog/(.+)/(.+).html$        ./blog/view/blog.php?page=$1&mode=$2 [NC]
    Rewriterule ^blog/(.+).html$            ./blog/blog.php?page=$1 [NC]
    Rewriterule ^blog/(.+)/$                ./blog/view/blog.php?page=$1 [NC]
    Rewriterule ^blog/$                        ./blog/blog.php [NC]
    
    RewriteCond %{REQUEST_FILENAME} !-f
    Rewriterule ^blog/(.+)/(.+)$        ./blog/view/blog.php?page=$1&mode=$2 [NC]
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^blog/(.+)$ ./blog/blog.php?page=$1 [NC]
    </IfModule>
    
    RewriteCond %{HTTP_REFERER} !^http://pinoyexpatforum.com/.*$      [NC]
    RewriteCond %{HTTP_REFERER} !^http://pinoyexpatforum.com$      [NC]
    RewriteCond %{HTTP_REFERER} !^http://www.pinoyexpatforum.com/.*$      [NC]
    RewriteCond %{HTTP_REFERER} !^http://www.pinoyexpatforum.com$      [NC]
    RewriteRule .*\.(jpg|jpeg|gif|png|bmp)$ - [F,NC]
    
    
    # Start CloudFlare:pinoyexpatforum.com rewrite. Do not Edit
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^pinoyexpatforum.com
    RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
    # End CloudFlare rewrite. 
     
  2. Tracy Perry

    Tracy Perry Well-Known Member

    Is your Xenforo installation in a directory called /xenforo? I notice you have the RewriteBase uncommented and pointing there.
     
  3. Mike

    Mike XenForo Developer Staff Member

    I don't see any of the default XenForo .htaccess in there at all actually.
     
  4. clove28

    clove28 Active Member

    Hi Tracy,

    It's installed in the root. Should I change it to public_html?

    Hi Mike,

    I've tried adding the default .htaccess but get Internal Server Error

    Code:
    #    Mod_security can interfere with uploading of content such as attachments. If you
    #    cannot attach files, remove the "#" from the lines below.
    #<IfModule mod_security.c>
    #    SecFilterEngine Off
    #    SecFilterScanPOST Off
    #</IfModule>
    
    ErrorDocument 401 default
    ErrorDocument 403 default
    ErrorDocument 404 default
    ErrorDocument 405 default
    ErrorDocument 406 default
    ErrorDocument 500 default
    ErrorDocument 501 default
    ErrorDocument 503 default
    
    <IfModule mod_rewrite.c>
        RewriteEngine On
    
        #    If you are having problems with the rewrite rules, remove the "#" from the
        #    line that begins "RewriteBase" below. You will also have to change the path
        #    of the rewrite to reflect the path to your XenForo installation.
        RewriteBase /xenforo
    
        #    This line may be needed to enable WebDAV editing with PHP as a CGI.
        #RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    
        RewriteCond %{REQUEST_FILENAME} -f [OR]
        RewriteCond %{REQUEST_FILENAME} -l [OR]
        RewriteCond %{REQUEST_FILENAME} -d
        RewriteRule ^.*$ - [NC,L]
        RewriteRule ^(data/|js/|styles/|install/|favicon\.ico|crossdomain\.xml|robots\.txt) - [NC,L]
        RewriteRule ^.*$ index.php [NC,L]
    </IfModule>
    
    Header unset Pragma
    FileETag None
    Header unset ETag
    
    # 1 YEAR
    <FilesMatch "\.(ico|pdf|flv)$">
    Header set Cache-Control "max-age=29030400, public"
    </FilesMatch>
    # 1 WEEK
    <FilesMatch "\.(jpg|jpeg|png|gif|swf)$">
    Header set Cache-Control "max-age=604800, public"
    </FilesMatch>
    # 2 DAYS 172800
    <FilesMatch "\.(xml|txt|css|js)$">
    Header set Cache-Control "max-age=604800, proxy-revalidate"
    </FilesMatch>
    # 1 MIN
    <FilesMatch "\.(html|htm)$">
    Header set Cache-Control "max-age=60, private, proxy-revalidate"
    </FilesMatch>
    
    <FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$">
    Header set Expires "Thu, 15 Dec 2011 20:00:00 GMT"
    </FilesMatch>
    
    RewriteEngine On
    
    RewriteCond %{QUERY_STRING} (^|\?)f=([0-9]+)&t=([0-9]+)($|&)
    RewriteRule ^viewtopic\.php$ /index.php?threads/%3/ [R=301,L]
    
    RewriteCond %{QUERY_STRING} (^|\?)f=([0-9]+)($|&)
    RewriteRule ^viewforum\.php$ /index.php?forums/%2/ [R=301,L]
    
    # Use PHP5.4 Single php.ini as default
    AddHandler application/x-httpd-php54s .php
    #
    # Uncomment the statement below if you want to make use of
    # HTTP authentication and it does not already work.
    # This could be required if you are for example using PHP via Apache CGI.
    #
    ## EXPIRES CACHING ##
    
    <IfModule mod_expires.c>
    
    # Enable expirations
    ExpiresActive On
    
    # Default directive
    ExpiresDefault "access plus 1 month"
    
    # My favicon
    ExpiresByType image/x-icon "access plus 1 year”
    
    # Images
    ExpiresByType image/gif "access plus 1 month"
    ExpiresByType image/png "access plus 1 month"
    ExpiresByType image/jpg "access plus 1 month"
    ExpiresByType image/jpeg "access plus 1 month"
    
    # CSS
    ExpiresByType text/css "access 1 month”
    
    # Javascript
    ExpiresByType application/javascript "access plus 1 year"
    
    </IfModule>
    
    ## EXPIRES CACHING ##
    #<IfModule mod_rewrite.c>
    #RewriteEngine on
    #RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
    #</IfModule>
    
    <Files "config.php">
    Order Allow,Deny
    Deny from All
    </Files>
    
    <Files "common.php">
    Order Allow,Deny
    Deny from All
    </Files>
    DirectoryIndex portal.php index.php index.html index.htm
    <IfModule mod_rewrite.c>
    RewriteEngine on
    
    Rewriterule ^blog/(.+)/(.+).html$        ./blog/view/blog.php?page=$1&mode=$2 [NC]
    Rewriterule ^blog/(.+).html$            ./blog/blog.php?page=$1 [NC]
    Rewriterule ^blog/(.+)/$                ./blog/view/blog.php?page=$1 [NC]
    Rewriterule ^blog/$                        ./blog/blog.php [NC]
    
    RewriteCond %{REQUEST_FILENAME} !-f
    Rewriterule ^blog/(.+)/(.+)$        ./blog/view/blog.php?page=$1&mode=$2 [NC]
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^blog/(.+)$ ./blog/blog.php?page=$1 [NC]
    </IfModule>
    
    RewriteCond %{HTTP_REFERER} !^http://pinoyexpatforum.com/.*$      [NC]
    RewriteCond %{HTTP_REFERER} !^http://pinoyexpatforum.com$      [NC]
    RewriteCond %{HTTP_REFERER} !^http://www.pinoyexpatforum.com/.*$      [NC]
    RewriteCond %{HTTP_REFERER} !^http://www.pinoyexpatforum.com$      [NC]
    RewriteRule .*\.(jpg|jpeg|gif|png|bmp)$ - [F,NC]
    
    
    # Start CloudFlare:pinoyexpatforum.com rewrite. Do not Edit
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^pinoyexpatforum.com
    RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
    # End CloudFlare rewrite. 
     
  5. Tracy Perry

    Tracy Perry Well-Known Member

    If it's installed in the root then it should just be /.
    I'd comment that out though as normally you don't need it.
     
    clove28 likes this.
  6. clove28

    clove28 Active Member

    It worked! Thank you so much Tracy!
     
    Tracy Perry likes this.

Share This Page