Rewriting URL's Apache Server Blocks. Links Won't Work Only Homepage

May 26, 2018 254 views
Apache Let's Encrypt PHP LAMP Stack Ubuntu

I am unable to get any links other than the homepage to display without getting the following error.

"Not Found The requested URL /albums was not found on this server. Apache/2.4.7 (Ubuntu) Server at example.com Port 443"

I have had the same issue before and spent hours when it ended up being something very simple. I have LetsEncrypt installed. Below are my 000-default.conf, .htaccess, and 000-default-le-ssl.conf. Can someone please show me what I am doing wrong....


<!-- 000-default.conf -->

<VirtualHost *:80>

    ServerName example.com
    Redirect permanent / https://example.com/
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html

    ScriptAlias /cgi-bin/ /var/cgi-bin/
        <Directory "/var/cgi-bin">
            AllowOverride None
            Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
            Require all granted
         </Directory>

    <Directory /var/www/html>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all                
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined   

</VirtualHost>

<VirtualHost *:80>
    ServerName www.example.com
    Redirect permanent / https://example.com/
</VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

the following is 000-default-le-ssl.conf

<IfModule mod_ssl.c>
<VirtualHost *:443>

    ServerName example.com
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html

    ScriptAlias /cgi-bin/ /var/cgi-bin/
        <Directory "/var/cgi-bin">
            AllowOverride None
            Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
            Require all granted
         </Directory>

    <Directory /var/www/html>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

SSLCertificateFile /etc/letsencrypt/live/example.com-0001/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com-0001/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateChainFile /etc/letsencrypt/live/example.com-0001/chain.pem
</VirtualHost>
</IfModule>

And the .htaccess file

<IfModule mod_rewrite.c>
RewriteEngine On 
RewriteBase /var/www/html
RewriteRule ^ajax/search$ ajax_search.php
RewriteRule ^signup$ signup.php
RewriteRule ^ajax/check_username$ ajax_check_username.php
RewriteRule ^logout$ logout.php
RewriteRule ^login$ login.php
RewriteRule ^lost$ lost.php
RewriteRule ^confirm$ confirm.php
RewriteRule ^mail/inbox$ inbox.php
RewriteRule ^mail/read$ read.php
RewriteRule ^mail/compose$ compose.php
RewriteRule ^mail/outbox$ outbox.php
RewriteRule ^requests$ requests.php
RewriteRule ^videos$ videos.php
RewriteRule ^myvideos$ myvideos.php
RewriteRule ^categories$ categories.php
RewriteRule ^albums$ albums.php
RewriteRule ^community$ community.php
RewriteRule ^users$ users.php
RewriteRule ^resetpassword/(.*) resetpassword.php?code=$1
RewriteRule ^confirmemail/(.*) confirmemail.php?code=$1
RewriteRule ^user/(.*)/(.*)/blog/(.*) memberblog.php?pid=$1&username=$2&page=$3
RewriteRule ^user/(.*)/(.*)/blog memberblog.php?pid=$1&username=$2
RewriteRule ^user/(.*)/(.*)/albums/(.*) memberalbums.php?pid=$1&username=$2&page=$3
RewriteRule ^user/(.*)/(.*)/albums memberalbums.php?pid=$1&username=$2
RewriteRule ^user/(.*)/(.*)/favorite/photos/(.*) memberfavphotos.php?pid=$1&username=$2&page=$3
RewriteRule ^user/(.*)/(.*)/favorite/photos memberfavphotos.php?pid=$1&username=$2
RewriteRule ^user/(.*)/(.*)/favorite/videos/(.*) memberfavvideos.php?pid=$1&username=$2&page=$3
RewriteRule ^user/(.*)/(.*)/favorite/videos memberfavvideos.php?pid=$1&username=$2
RewriteRule ^user/(.*)/(.*)/videos/public/(.*) memberpubvideos.php?pid=$1&username=$2&page=$3
RewriteRule ^user/(.*)/(.*)/videos/public memberpubvideos.php?pid=$1&username=$2
RewriteRule ^user/(.*)/(.*)/videos/private/(.*) memberprivideos.php?pid=$1&username=$2&page=$3
RewriteRule ^user/(.*)/(.*)/videos/private memberprivideos.php?pid=$1&username=$2
RewriteRule ^user/(.*)/(.*)/friends/(.*) memberfriends.php?pid=$1&username=$2&etc=$3
RewriteRule ^user/(.*)/(.*)/friends$ memberfriends.php?pid=$1&username=$2
RewriteRule ^user/(.*)/(.*)/subscribers/(.*) membersubscribers.php?pid=$1&username=$2&etc=$3
RewriteRule ^user/(.*)/(.*)/subscribers$ membersubscribers.php?pid=$1&username=$2
RewriteRule ^user/(.*)/(.*)/wall memberwall.php?pid=$1&username=$2
RewriteRule ^user/(.*)/(.*)/subscriptions/(.*) membersubscriptions.php?pid=$1&username=$2&etc=$3
RewriteRule ^user/(.*)/(.*)/subscriptions$ membersubscriptions.php?pid=$1&username=$2
RewriteRule ^user/(.*)/(.*)/playlist/(.*) memberplaylist.php?pid=$1&username=$2&page=$3
RewriteRule ^user/(.*)/(.*)/playlist memberplaylist.php?pid=$1&username=$2
RewriteRule ^user/(.*)/(.*) memberprofile.php?pid=$1&username=$2
RewriteRule ^ajax/insert_favorite_photos$ ajax_insert_favorite_photos.php
RewriteRule ^ajax/insert_my_photos$ ajax_insert_my_photos.php
RewriteRule ^ajax/insert_playlist_videos$ ajax_insert_playlist_videos.php
RewriteRule ^ajax/insert_my_videos$ ajax_insert_my_videos.php
RewriteRule ^ajax/insert_favorite_videos$ ajax_insert_favorite_videos.php
RewriteRule ^upload$ upload.php
RewriteRule ^upload/video$ uploadvideo.php
RewriteRule ^upload/photo$ uploadphoto.php
RewriteRule ^edit$ edit.php
RewriteRule ^prefs$ prefs.php
RewriteRule ^avatar$ avatar.php
RewriteRule ^album/edit/(.*) editalbum.php?aid=$1
RewriteRule ^album/addphotos/(.*) addphotosalbum.php?aid=$1
RewriteRule ^album/delete/(.*) deletealbum.php?aid=$1
RewriteRule ^album/slideshow/(.*) slideshow.php?aid=$1
RewriteRule ^album/(.*)/(.*) viewalbum.php?aid=$1&page=$2
RewriteRule ^ajax/album_cover$ ajax_album_cover.php
RewriteRule ^photo/(.*)/(.*) viewphoto.php?pid=$1&page=$2
RewriteRule ^video/(.*)/(.*) playvideo.php?videoid=$1&page=$2
RewriteRule ^ajax/rate_video$ ajax_rate_video.php
RewriteRule ^ajax/rate_photo$ ajax_rate_photo.php
RewriteRule ^ajax/favorite_video$ ajax_favorite_video.php
RewriteRule ^ajax/favorite_photo$ ajax_favorite_photo.php
RewriteRule ^ajax/flag_video$ ajax_flag_video.php
RewriteRule ^ajax/flag_photo$ ajax_flag_photo.php
RewriteRule ^ajax/share_video$ ajax_share_video.php
RewriteRule ^ajax/share_photo$ ajax_share_photo.php
RewriteRule ^ajax/photo_comment$ ajax_photo_comment.php
RewriteRule ^ajax/photo_pagination$ ajax_photo_pagination.php
RewriteRule ^ajax/photo_comment_delete$ ajax_photo_comment_delete.php
RewriteRule ^ajax/video_comment_delete$ ajax_video_comment_delete.php
RewriteRule ^ajax/wall_comment_delete$ ajax_wall_comment_delete.php
RewriteRule ^ajax/report_spam$ ajax_report_spam.php
RewriteRule ^ajax/remove_photo_favorite$ ajax_remove_photo_favorite.php
RewriteRule ^ajax/upload_progress$ ajax_upload_progress.php
RewriteRule ^search$ search.php
RewriteRule ^ajax/related_videos$ ajax_related_videos.php
RewriteRule ^ajax/video_comment$ ajax_video_comment.php
RewriteRule ^ajax/video_pagination$ ajax_video_pagination.php
RewriteRule ^ajax/video_comment_delete$ ajax_video_comment_delete.php
RewriteRule ^ajax/remove_video_playlist$ ajax_remove_video_playlist.php
RewriteRule ^ajax/remove_video_favorite$ ajax_remove_video_favorite.php
RewriteRule ^ajax/wall_comment$ ajax_wall_comment.php
RewriteRule ^ajax/wall_pagination$ ajax_wall_pagination.php
RewriteRule ^ajax/subscribe$ ajax_subscribe.php
RewriteRule ^ajax/unsubscribe$ ajax_unsubscribe.php
RewriteRule ^ajax/block_user$ ajax_block_user.php
RewriteRule ^ajax/unblock_user$ ajax_unblock_user.php
RewriteRule ^ajax/report_user$ ajax_report_user.php
RewriteRule ^ajax/invite_friend$ ajax_invite_friend.php
RewriteRule ^ajax/send_message$ ajax_send_message.php
RewriteRule ^ajax/rate_user$ ajax_rate_user.php
RewriteRule ^ajax/remove_friend$ ajax_remove_friend.php
RewriteRule ^ajax/accept_friend$ ajax_accept_friend.php
RewriteRule ^ajax/reject_friend$ ajax_reject_friend.php
RewriteRule ^ajax/category_videos$ ajax_category_videos.php
RewriteRule ^ajax/users$ ajax_users.php
RewriteRule ^ajax/blog_comment$ ajax_blog_comment.php
RewriteRule ^ajax/blog_pagination$ ajax_blog_pagination.php
RewriteRule ^ajax/blog_comment_delete$ ajax_blog_comment_delete.php
RewriteRule ^blog/add$ blog_add.php
RewriteRule ^blog/edit/(.*)/(.*) blog_edit.php?bid=$1&title=$2
RewriteRule ^blog/delete/(.*) blog_delete.php?bid=$1
RewriteRule ^blog/(.*)/(.*) viewblog.php?bid=$1&title=$2
RewriteRule ^ajax/blog_preview$ ajax_blog_preview.php
RewriteRule ^blogs$ blogs.php
RewriteRule ^invite$ invite.php
RewriteRule ^feedback$ feedback.php
RewriteRule ^static/faq$ faq.php
RewriteRule ^static/terms$ terms.php
RewriteRule ^static/privacy$ privacy.php
RewriteRule ^static/dmca$ dmca.php
RewriteRule ^static/_2257$ 2257.php
RewriteRule ^static/webmasters$ webmasters.php
RewriteRule ^static/advertise$ advertise.php
RewriteRule ^notices$ notices.php
RewriteRule ^notice/(.*)/(.*) viewnotice.php?nid=$1&title=$2
RewriteRule ^ajax/notice_comment$ ajax_notice_comment.php
RewriteRule ^ajax/notice_pagination$ ajax_notice_pagination.php
RewriteRule ^ajax/notice_comment_delete$ ajax_notice_comment_delete.php
RewriteRule ^blocks$ blocks.php
RewriteRule ^delete$ delete.php
RewriteRule ^download/video/(.*)/(.*) downloadvideo.php?VIDEOID=$1&title=$2
RewriteRule ^rss$ rss.php
RewriteRule ^photos$ photos.php
</IfModule>

<IfModule mod_security.c> 
   # Turn off mod_security filtering. 
   SecFilterEngine Off 

   # The below probably isn't needed, 
   # but better safe than sorry. 
   SecFilterScanPOST Off 
</IfModule>

1 Answer

I was able to figure out what I was doing wrong and everything is working perfectly now. Cheers.

Have another answer? Share your knowledge.